summaryrefslogtreecommitdiff
path: root/constants
diff options
context:
space:
mode:
authorsurskitty <surskitty@gmail.com>2017-12-12 00:50:55 -0500
committersurskitty <surskitty@gmail.com>2017-12-12 00:50:55 -0500
commit096afdcdaca0714612f3670a3c4a670f312c1c3f (patch)
tree0c0bedcd311ab83262e31cf6d9d4c37257143acc /constants
parent98128cd4d8457948e7136a16e08bacff0bc3529d (diff)
parentf6942b9a136b2ee3b25159ebc4d54509a42c5266 (diff)
Merge branch 'master' of github.com:pret/pokecrystal
Diffstat (limited to 'constants')
-rw-r--r--constants/animation_constants.asm27
-rwxr-xr-xconstants/audio_constants.asm1
-rw-r--r--constants/deco_constants.asm2
-rw-r--r--constants/effect_command_constants.asm187
-rw-r--r--constants/engine_flags.asm10
-rw-r--r--constants/event_flags.asm8
-rw-r--r--constants/gfx_constants.asm24
-rw-r--r--constants/input_constants.asm26
-rw-r--r--constants/item_constants.asm1
-rw-r--r--constants/landmark_constants.asm2
-rw-r--r--constants/map_constants.asm512
-rw-r--r--constants/map_dimension_constants.asm473
-rw-r--r--constants/misc_constants.asm113
-rw-r--r--constants/music_constants.asm4
-rw-r--r--constants/npctrade_constants.asm21
-rw-r--r--constants/phone_constants.asm4
-rw-r--r--constants/pokemon_constants.asm71
-rw-r--r--constants/pokemon_data_constants.asm108
-rw-r--r--constants/serial_constants.asm12
-rw-r--r--constants/sfx_constants.asm4
-rw-r--r--constants/sprite_constants.asm29
-rw-r--r--constants/tileset_constants.asm (renamed from constants/tilemap_constants.asm)8
-rw-r--r--constants/trainer_constants.asm2
-rw-r--r--constants/wram_constants.asm69
24 files changed, 1007 insertions, 711 deletions
diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm
index 8802cd579..e7c844c12 100644
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -824,13 +824,24 @@ const_value SET 1
const BG_EFFECT_STRUCT_BATTLE_TURN
const BG_EFFECT_STRUCT_03
+; battle palettes
+ const_def
+ const PAL_BATTLE_BG_PLAYER ; 0
+ const PAL_BATTLE_BG_ENEMY ; 1
+ const PAL_BATTLE_BG_ENEMY_HP ; 2
+ const PAL_BATTLE_BG_PLAYER_HP ; 3
+ const PAL_BATTLE_BG_EXP ; 4
+ const PAL_BATTLE_BG_5 ; 5
+ const PAL_BATTLE_BG_6 ; 6
+ const PAL_BATTLE_BG_TEXT ; 7
+
; animation object palettes
const_def
- const PAL_BATTLE_ENEMY ; 0
- const PAL_BATTLE_PLAYER ; 1
- const PAL_BATTLE_GRAY ; 2
- const PAL_BATTLE_YELLOW ; 3
- const PAL_BATTLE_RED ; 4
- const PAL_BATTLE_GREEN ; 5
- const PAL_BATTLE_BLUE ; 6
- const PAL_BATTLE_BROWN ; 7
+ const PAL_BATTLE_OB_ENEMY ; 0
+ const PAL_BATTLE_OB_PLAYER ; 1
+ const PAL_BATTLE_OB_GRAY ; 2
+ const PAL_BATTLE_OB_YELLOW ; 3
+ const PAL_BATTLE_OB_RED ; 4
+ const PAL_BATTLE_OB_GREEN ; 5
+ const PAL_BATTLE_OB_BLUE ; 6
+ const PAL_BATTLE_OB_BROWN ; 7
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index a0c2f05ae..dd39df20f 100755
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -1,4 +1,5 @@
; pitch
+; FrequencyTable indexes (see data/audio/notes.asm)
const_def
const __ ; 0
const C_ ; 1
diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm
index 540920e5c..433b11e25 100644
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -59,7 +59,7 @@ deco: MACRO
enum DECOFLAG_\1
endm
-; decorations
+; decorations (see data/decoration_attribute.asm)
const_value = 1
__enum__ = 0
const BEDS
diff --git a/constants/effect_command_constants.asm b/constants/effect_command_constants.asm
new file mode 100644
index 000000000..0d86e66a1
--- /dev/null
+++ b/constants/effect_command_constants.asm
@@ -0,0 +1,187 @@
+; BattleCommandPointers indexes (see battle/effect_commands.asm)
+
+command: macro
+ enum \1_command
+\1 equs "db \1_command"
+endm
+
+ enum_start 1
+ command checkturn ; 01
+ command checkobedience ; 02
+ command usedmovetext ; 03
+ command doturn ; 04
+ command critical ; 05
+ command damagestats ; 06
+ command stab ; 07
+ command damagevariation ; 08
+ command checkhit ; 09
+ command lowersub ; 0a
+ command hittargetnosub ; 0b
+ command raisesub ; 0c
+ command failuretext ; 0d
+ command checkfaint ; 0e
+ command criticaltext ; 0f
+ command supereffectivetext ; 10
+ command checkdestinybond ; 11
+ command buildopponentrage ; 12
+ command poisontarget ; 13
+ command sleeptarget ; 14
+ command draintarget ; 15
+ command eatdream ; 16
+ command burntarget ; 17
+ command freezetarget ; 18
+ command paralyzetarget ; 19
+ command selfdestruct ; 1a
+ command mirrormove ; 1b
+ command statup ; 1c
+ command statdown ; 1d
+ command payday ; 1e
+ command conversion ; 1f
+ command resetstats ; 20
+ command storeenergy ; 21
+ command unleashenergy ; 22
+ command forceswitch ; 23
+ command endloop ; 24
+ command flinchtarget ; 25
+ command ohko ; 26
+ command recoil ; 27
+ command mist ; 28
+ command focusenergy ; 29
+ command confuse ; 2a
+ command confusetarget ; 2b
+ command heal ; 2c
+ command transform ; 2d
+ command screen ; 2e
+ command poison ; 2f
+ command paralyze ; 30
+ command substitute ; 31
+ command rechargenextturn ; 32
+ command mimic ; 33
+ command metronome ; 34
+ command leechseed ; 35
+ command splash ; 36
+ command disable ; 37
+ command cleartext ; 38
+ command charge ; 39
+ command checkcharge ; 3a
+ command traptarget ; 3b
+ command effect0x3c ; 3c
+ command rampage ; 3d
+ command checkrampage ; 3e
+ command constantdamage ; 3f
+ command counter ; 40
+ command encore ; 41
+ command painsplit ; 42
+ command snore ; 43
+ command conversion2 ; 44
+ command lockon ; 45
+ command sketch ; 46
+ command defrostopponent ; 47
+ command sleeptalk ; 48
+ command destinybond ; 49
+ command spite ; 4a
+ command falseswipe ; 4b
+ command healbell ; 4c
+ command kingsrock ; 4d
+ command triplekick ; 4e
+ command kickcounter ; 4f
+ command thief ; 50
+ command arenatrap ; 51
+ command nightmare ; 52
+ command defrost ; 53
+ command curse ; 54
+ command protect ; 55
+ command spikes ; 56
+ command foresight ; 57
+ command perishsong ; 58
+ command startsandstorm ; 59
+ command endure ; 5a
+ command checkcurl ; 5b
+ command rolloutpower ; 5c
+ command effect0x5d ; 5d
+ command furycutter ; 5e
+ command attract ; 5f
+ command happinesspower ; 60
+ command present ; 61
+ command damagecalc ; 62
+ command frustrationpower ; 63
+ command safeguard ; 64
+ command checksafeguard ; 65
+ command getmagnitude ; 66
+ command batonpass ; 67
+ command pursuit ; 68
+ command clearhazards ; 69
+ command healmorn ; 6a
+ command healday ; 6b
+ command healnite ; 6c
+ command hiddenpower ; 6d
+ command startrain ; 6e
+ command startsun ; 6f
+ command attackup ; 70
+ command defenseup ; 71
+ command speedup ; 72
+ command specialattackup ; 73
+ command specialdefenseup ; 74
+ command accuracyup ; 75
+ command evasionup ; 76
+ command attackup2 ; 77
+ command defenseup2 ; 78
+ command speedup2 ; 79
+ command specialattackup2 ; 7a
+ command specialdefenseup2 ; 7b
+ command accuracyup2 ; 7c
+ command evasionup2 ; 7d
+ command attackdown ; 7e
+ command defensedown ; 7f
+ command speeddown ; 80
+ command specialattackdown ; 81
+ command specialdefensedown ; 82
+ command accuracydown ; 83
+ command evasiondown ; 84
+ command attackdown2 ; 85
+ command defensedown2 ; 86
+ command speeddown2 ; 87
+ command specialattackdown2 ; 88
+ command specialdefensedown2 ; 89
+ command accuracydown2 ; 8a
+ command evasiondown2 ; 8b
+ command statupmessage ; 8c
+ command statdownmessage ; 8d
+ command statupfailtext ; 8e
+ command statdownfailtext ; 8f
+ command effectchance ; 90
+ command statdownanim ; 91
+ command statupanim ; 92
+ command switchturn ; 93
+ command fakeout ; 94
+ command bellydrum ; 95
+ command psychup ; 96
+ command rage ; 97
+ command doubleflyingdamage ; 98
+ command doubleundergrounddamage ; 99
+ command mirrorcoat ; 9a
+ command checkfuturesight ; 9b
+ command futuresight ; 9c
+ command doubleminimizedamage ; 9d
+ command skipsuncharge ; 9e
+ command thunderaccuracy ; 9f
+ command teleport ; a0
+ command beatup ; a1
+ command ragedamage ; a2
+ command resettypematchup ; a3
+ command allstatsup ; a4
+ command effect0xa5 ; a5
+ command raisesubnoanim ; a6
+ command lowersubnoanim ; a7
+ command effect0xa8 ; a8
+ command clearmissdamage ; a9
+ command movedelay ; aa
+ command hittarget ; ab
+ command tristatuschance ; ac
+ command supereffectivelooptext ; ad
+ command startloop ; ae
+ command curl ; af
+
+ enum_start -1, -1
+ command endmove
+ command endturn
diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm
index 080939f2c..19f0891a0 100644
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -6,11 +6,11 @@
const ENGINE_PHONE_CARD
const ENGINE_EXPN_CARD
const ENGINE_POKEGEAR
-; wDaycareMan
- const ENGINE_DAYCARE_MAN_HAS_EGG
- const ENGINE_DAYCARE_MAN_HAS_MON
-; wDaycareLady
- const ENGINE_DAYCARE_LADY_HAS_MON
+; wDayCareMan
+ const ENGINE_DAY_CARE_MAN_HAS_EGG
+ const ENGINE_DAY_CARE_MAN_HAS_MON
+; wDayCareLady
+ const ENGINE_DAY_CARE_LADY_HAS_MON
; wMomSavingMoney
const ENGINE_MOM_SAVING_MONEY
const ENGINE_DST
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index 8ec4f46d5..d1aa43610 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -1836,10 +1836,10 @@
const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
const EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
const EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
- const EVENT_DAYCARE_MAN_IN_DAYCARE
- const EVENT_DAYCARE_MAN_ON_ROUTE_34
- const EVENT_DAYCARE_MON_1
- const EVENT_DAYCARE_MON_2
+ const EVENT_DAY_CARE_MAN_IN_DAY_CARE
+ const EVENT_DAY_CARE_MAN_ON_ROUTE_34
+ const EVENT_DAY_CARE_MON_1
+ const EVENT_DAY_CARE_MON_2
const EVENT_ILEX_FOREST_FARFETCHD
const EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
const EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 6b8cc33c9..445f0d815 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,3 +1,21 @@
-LEN_2BPP_TILE EQU 16
-LEN_1BPP_TILE EQU 8
-TILES_PER_FRAME EQU 6
+LEN_1BPP_TILE EQU 8 ; bytes
+LEN_2BPP_TILE EQU 16 ; bytes
+
+TILE_WIDTH EQU 8 ; pixels
+
+NUM_PAL_COLORS EQU 4
+
+SCREEN_WIDTH EQU 20 ; tiles
+SCREEN_HEIGHT EQU 18 ; tiles
+SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
+SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
+
+BG_MAP_WIDTH EQU 32 ; tiles
+BG_MAP_HEIGHT EQU 32 ; tiles
+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
+EXP_BAR_LENGTH EQU 8 ; tiles
+EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
diff --git a/constants/input_constants.asm b/constants/input_constants.asm
new file mode 100644
index 000000000..3042c3f89
--- /dev/null
+++ b/constants/input_constants.asm
@@ -0,0 +1,26 @@
+; joypad buttons
+ const_def
+ const A_BUTTON_F ; 0
+ const B_BUTTON_F ; 1
+ const SELECT_F ; 2
+ const START_F ; 3
+ const D_RIGHT_F ; 4
+ const D_LEFT_F ; 5
+ const D_UP_F ; 6
+ const D_DOWN_F ; 7
+
+NO_INPUT EQU %00000000
+A_BUTTON EQU 1 << A_BUTTON_F
+B_BUTTON EQU 1 << B_BUTTON_F
+SELECT EQU 1 << SELECT_F
+START EQU 1 << START_F
+D_RIGHT EQU 1 << D_RIGHT_F
+D_LEFT EQU 1 << D_LEFT_F
+D_UP EQU 1 << D_UP_F
+D_DOWN EQU 1 << D_DOWN_F
+
+BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
+D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
+
+R_DPAD EQU %00100000
+R_BUTTONS EQU %00010000
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 443176f1f..996023e73 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -197,6 +197,7 @@
const MIRAGE_MAIL ; $BD
const ITEM_BE ; $BE
+; see data/tmhm_moves.asm for moves
add_tm DYNAMICPUNCH ; $BF
add_tm HEADBUTT ; $C0
add_tm CURSE ; $C1
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index f9c840595..e53d44d04 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,4 +1,4 @@
-; Landmarks indexes (see engine/landmarks.asm)
+; Landmarks indexes (see data/landmarks.asm)
const_def
; Johto landmarks
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index b1b78551c..be73faf9e 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -1,484 +1,8 @@
GROUP_N_A EQU -1
MAP_N_A EQU -1
-
GROUP_NONE EQU 0
MAP_NONE EQU 0
-; map group ids
-; `newgroup` indexes are for:
-; - MapGroupPointers (see maps/map_headers.asm)
-; - OutdoorSprites (see engine/overworld.asm)
-; - MapGroupRoofs (see tilesets/roofs.asm)
-; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.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
-
- 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
-
- newgroup ; 3
-
- mapgroup SPROUT_TOWER_1F, 8, 10 ; 1
- mapgroup SPROUT_TOWER_2F, 8, 10 ; 2
- mapgroup SPROUT_TOWER_3F, 8, 10 ; 3
- mapgroup TIN_TOWER_1F, 9, 10 ; 4
- mapgroup TIN_TOWER_2F, 9, 10 ; 5
- mapgroup TIN_TOWER_3F, 9, 10 ; 6
- mapgroup TIN_TOWER_4F, 9, 10 ; 7
- mapgroup TIN_TOWER_5F, 9, 10 ; 8
- mapgroup TIN_TOWER_6F, 9, 10 ; 9
- mapgroup TIN_TOWER_7F, 9, 10 ; 10
- mapgroup TIN_TOWER_8F, 9, 10 ; 11
- mapgroup TIN_TOWER_9F, 9, 10 ; 12
- mapgroup BURNED_TOWER_1F, 9, 10 ; 13
- mapgroup BURNED_TOWER_B1F, 9, 10 ; 14
- mapgroup NATIONAL_PARK, 27, 20 ; 15
- mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16
- mapgroup RADIO_TOWER_1F, 4, 9 ; 17
- mapgroup RADIO_TOWER_2F, 4, 9 ; 18
- mapgroup RADIO_TOWER_3F, 4, 9 ; 19
- mapgroup RADIO_TOWER_4F, 4, 9 ; 20
- mapgroup RADIO_TOWER_5F, 4, 9 ; 21
- mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22
- mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23
- mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24
- mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25
- mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26
- mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27
- mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28
- mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29
- mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30
- mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31
- mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32
- mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33
- mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34
- mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35
- mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36
- mapgroup UNION_CAVE_1F, 18, 10 ; 37
- mapgroup UNION_CAVE_B1F, 18, 10 ; 38
- mapgroup UNION_CAVE_B2F, 18, 10 ; 39
- mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40
- mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41
- mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42
- mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43
- mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44
- mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45
- mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46
- mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47
- mapgroup MAHOGANY_MART_1F, 4, 4 ; 48
- mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49
- mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50
- mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51
- mapgroup ILEX_FOREST, 27, 15 ; 52
- mapgroup WAREHOUSE_ENTRANCE, 18, 15 ; 53
- mapgroup UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
- mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
- mapgroup UNDERGROUND_WAREHOUSE, 9, 10 ; 56
- mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57
- mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58
- mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59
- mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60
- mapgroup ICE_PATH_1F, 18, 20 ; 61
- mapgroup ICE_PATH_B1F, 18, 10 ; 62
- mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63
- mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64
- mapgroup ICE_PATH_B3F, 9, 10 ; 65
- mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66
- mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67
- mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68
- mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69
- mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70
- mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71
- mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72
- mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73
- mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74
- mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75
- mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76
- mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77
- mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78
- mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79
- mapgroup DRAGONS_DEN_1F, 9, 5 ; 80
- mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81
- mapgroup DRAGON_SHRINE, 5, 5 ; 82
- mapgroup TOHJO_FALLS, 9, 15 ; 83
- mapgroup DIGLETTS_CAVE, 18, 10 ; 84
- mapgroup MOUNT_MOON, 9, 15 ; 85
- mapgroup UNDERGROUND, 14, 3 ; 86
- mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87
- mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88
- mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89
- mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90
- mapgroup VICTORY_ROAD, 36, 10 ; 91
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- newgroup ; 10
-
- mapgroup ROUTE_32, 45, 10 ; 1
- mapgroup ROUTE_35, 18, 10 ; 2
- mapgroup ROUTE_36, 9, 30 ; 3
- mapgroup ROUTE_37, 9, 10 ; 4
- mapgroup VIOLET_CITY, 18, 20 ; 5
- mapgroup VIOLET_MART, 4, 6 ; 6
- mapgroup VIOLET_GYM, 8, 5 ; 7
- mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
- mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
- mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11
- mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
- mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
- mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
- mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
- mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16
- mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17
-
- 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 DAYCARE, 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_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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- newgroup ; 25
-
- mapgroup ROUTE_5, 9, 10 ; 1
- mapgroup SAFFRON_CITY, 18, 20 ; 2
- mapgroup FIGHTING_DOJO, 6, 5 ; 3
- mapgroup SAFFRON_GYM, 9, 10 ; 4
- mapgroup SAFFRON_MART, 4, 6 ; 5
- mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6
- mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7
- mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8
- mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9
- mapgroup SILPH_CO_1F, 4, 8 ; 10
- mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11
- mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12
- mapgroup ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4 ; 13
- mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14
- mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15
-
- 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
-
-
; map permissions (wPermission)
const_value SET 1
const TOWN
@@ -603,7 +127,7 @@ SLIDING EQU 3
EMOTE_OBJECT EQU 7
-; SpawnPoints indexes (see engine/spawn_points.asm)
+; SpawnPoints indexes (see data/spawn_points.asm)
const_value = -1
const SPAWN_N_A
const SPAWN_HOME
@@ -679,7 +203,7 @@ NUM_SPAWNS EQU const_value
const EMOTE_GRASS_RUSTLE ; 11
EMOTE_MEM EQU -1
-; FruitTreeItems indexes (see engine/fruit_trees.asm)
+; FruitTreeItems indexes (see data/fruit_tree_items.asm)
const_value SET 1
const FRUITTREE_ROUTE_29 ; 01
const FRUITTREE_ROUTE_30_1 ; 02
@@ -716,22 +240,22 @@ NUM_FRUIT_TREES EQU const_value +- 1
; elevator floors
; used by `elevfloor`
const_def
- const _B4F
- const _B3F
- const _B2F
- const _B1F
- const _1F
- const _2F
- const _3F
- const _4F
- const _5F
- const _6F
- const _7F
- const _8F
- const _9F
- const _10F
- const _11F
- const _ROOF
+ 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
diff --git a/constants/map_dimension_constants.asm b/constants/map_dimension_constants.asm
new file mode 100644
index 000000000..d7fead006
--- /dev/null
+++ b/constants/map_dimension_constants.asm
@@ -0,0 +1,473 @@
+; map group ids
+; `newgroup` indexes are for:
+; - MapGroupPointers (see maps/map_headers.asm)
+; - OutdoorSprites (see data/outdoor_sprites.asm)
+; - MapGroupRoofs (see data/mapgroup_roofs.asm)
+; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.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
+
+ 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
+
+ newgroup ; 3
+
+ mapgroup SPROUT_TOWER_1F, 8, 10 ; 1
+ mapgroup SPROUT_TOWER_2F, 8, 10 ; 2
+ mapgroup SPROUT_TOWER_3F, 8, 10 ; 3
+ mapgroup TIN_TOWER_1F, 9, 10 ; 4
+ mapgroup TIN_TOWER_2F, 9, 10 ; 5
+ mapgroup TIN_TOWER_3F, 9, 10 ; 6
+ mapgroup TIN_TOWER_4F, 9, 10 ; 7
+ mapgroup TIN_TOWER_5F, 9, 10 ; 8
+ mapgroup TIN_TOWER_6F, 9, 10 ; 9
+ mapgroup TIN_TOWER_7F, 9, 10 ; 10
+ mapgroup TIN_TOWER_8F, 9, 10 ; 11
+ mapgroup TIN_TOWER_9F, 9, 10 ; 12
+ mapgroup BURNED_TOWER_1F, 9, 10 ; 13
+ mapgroup BURNED_TOWER_B1F, 9, 10 ; 14
+ mapgroup NATIONAL_PARK, 27, 20 ; 15
+ mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16
+ mapgroup RADIO_TOWER_1F, 4, 9 ; 17
+ mapgroup RADIO_TOWER_2F, 4, 9 ; 18
+ mapgroup RADIO_TOWER_3F, 4, 9 ; 19
+ mapgroup RADIO_TOWER_4F, 4, 9 ; 20
+ mapgroup RADIO_TOWER_5F, 4, 9 ; 21
+ mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22
+ mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23
+ mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24
+ mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25
+ mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26
+ mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27
+ mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28
+ mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29
+ mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30
+ mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31
+ mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32
+ mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33
+ mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34
+ mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35
+ mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36
+ mapgroup UNION_CAVE_1F, 18, 10 ; 37
+ mapgroup UNION_CAVE_B1F, 18, 10 ; 38
+ mapgroup UNION_CAVE_B2F, 18, 10 ; 39
+ mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40
+ mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41
+ mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42
+ mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43
+ mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44
+ mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45
+ mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46
+ mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47
+ mapgroup MAHOGANY_MART_1F, 4, 4 ; 48
+ mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49
+ mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50
+ mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51
+ mapgroup ILEX_FOREST, 27, 15 ; 52
+ mapgroup WAREHOUSE_ENTRANCE, 18, 15 ; 53
+ mapgroup UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
+ mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
+ mapgroup UNDERGROUND_WAREHOUSE, 9, 10 ; 56
+ mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57
+ mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58
+ mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59
+ mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60
+ mapgroup ICE_PATH_1F, 18, 20 ; 61
+ mapgroup ICE_PATH_B1F, 18, 10 ; 62
+ mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63
+ mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64
+ mapgroup ICE_PATH_B3F, 9, 10 ; 65
+ mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66
+ mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67
+ mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68
+ mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69
+ mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70
+ mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71
+ mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72
+ mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73
+ mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74
+ mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75
+ mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76
+ mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77
+ mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78
+ mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79
+ mapgroup DRAGONS_DEN_1F, 9, 5 ; 80
+ mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81
+ mapgroup DRAGON_SHRINE, 5, 5 ; 82
+ mapgroup TOHJO_FALLS, 9, 15 ; 83
+ mapgroup DIGLETTS_CAVE, 18, 10 ; 84
+ mapgroup MOUNT_MOON, 9, 15 ; 85
+ mapgroup UNDERGROUND, 14, 3 ; 86
+ mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87
+ mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88
+ mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89
+ mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90
+ mapgroup VICTORY_ROAD, 36, 10 ; 91
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ newgroup ; 10
+
+ mapgroup ROUTE_32, 45, 10 ; 1
+ mapgroup ROUTE_35, 18, 10 ; 2
+ mapgroup ROUTE_36, 9, 30 ; 3
+ mapgroup ROUTE_37, 9, 10 ; 4
+ mapgroup VIOLET_CITY, 18, 20 ; 5
+ mapgroup VIOLET_MART, 4, 6 ; 6
+ mapgroup VIOLET_GYM, 8, 5 ; 7
+ mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
+ mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
+ mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11
+ mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
+ mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
+ mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
+ mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
+ mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16
+ mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17
+
+ 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
+
+ newgroup ; 12
+
+ mapgroup ROUTE_6, 9, 10 ; 1
+ mapgroup ROUTE_11, 9, 20 ; 2
+ mapgroup VERMILION_CITY, 18, 20 ; 3
+ mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4
+ mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5
+ mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6
+ mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7
+ mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8
+ mapgroup VERMILION_MART, 4, 6 ; 9
+ mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10
+ mapgroup VERMILION_GYM, 9, 5 ; 11
+ mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12
+ mapgroup ROUTE_6_UNDERGROUND_ENTRANCE, 4, 4 ; 13
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ 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
+
+ newgroup ; 25
+
+ mapgroup ROUTE_5, 9, 10 ; 1
+ mapgroup SAFFRON_CITY, 18, 20 ; 2
+ mapgroup FIGHTING_DOJO, 6, 5 ; 3
+ mapgroup SAFFRON_GYM, 9, 10 ; 4
+ mapgroup SAFFRON_MART, 4, 6 ; 5
+ mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6
+ mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7
+ mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8
+ mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9
+ mapgroup SILPH_CO_1F, 4, 8 ; 10
+ mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11
+ mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12
+ mapgroup ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4 ; 13
+ mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14
+ mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15
+
+ 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
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 6ae41e989..7510fdf50 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -25,6 +25,7 @@ PKMN_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.asm)
PKMN_NAME EQU 1
@@ -37,70 +38,11 @@ TRAINER_NAME EQU 7
; broken ptr EQU 8
-; boxes
-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_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
-NUM_HOF_TEAMS = 30
-
-
-; joypad
-
- const_def
- const A_BUTTON_F
- const B_BUTTON_F
- const SELECT_F
- const START_F
- const D_RIGHT_F
- const D_LEFT_F
- const D_UP_F
- const D_DOWN_F
-
-NO_INPUT EQU %00000000
-A_BUTTON EQU 1 << A_BUTTON_F
-B_BUTTON EQU 1 << B_BUTTON_F
-SELECT EQU 1 << SELECT_F
-START EQU 1 << START_F
-D_RIGHT EQU 1 << D_RIGHT_F
-D_LEFT EQU 1 << D_LEFT_F
-D_UP EQU 1 << D_UP_F
-D_DOWN EQU 1 << D_DOWN_F
-
-BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
-D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
-
-R_DPAD EQU %00100000
-R_BUTTONS EQU %00010000
-
-
-; screen
-
-HP_BAR_LENGTH EQU 6
-HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8
-EXP_BAR_LENGTH EQU 8
-EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8
-
-SCREEN_WIDTH EQU 20
-SCREEN_HEIGHT EQU 18
-SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8
-SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8
-
-BG_MAP_WIDTH EQU 32
-BG_MAP_HEIGHT EQU 32
-WMISC_WIDTH EQU 6 * 4
-WMISC_HEIGHT EQU 5 * 4
-
-TILE_WIDTH EQU 8
-
-
; printing text
-
-PRINTNUM_MONEY_F EQU 5
-PRINTNUM_RIGHTALIGN_F EQU 6
-PRINTNUM_LEADINGZEROS_F EQU 7
+const_value set 5
+ const PRINTNUM_MONEY_F ; 5
+ const PRINTNUM_RIGHTALIGN_F ; 6
+ const PRINTNUM_LEADINGZEROS_F ; 7
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
@@ -119,7 +61,34 @@ PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
const STEP_WALK_IN_PLACE ; 7
-; ChangeHappiness arguments (see event/happiness_egg.asm)
+HMENURETURN_SCRIPT EQU %10000000
+HMENURETURN_ASM EQU %11111111
+
+
+; time of day boundaries
+MORN_HOUR EQU 4 ; 4 AM
+DAY_HOUR EQU 10 ; 10 AM
+NITE_HOUR EQU 18 ; 6 PM
+NOON_HOUR EQU 12 ; 12 PM
+MAX_HOUR EQU 24 ; 12 AM
+
+
+; boxes
+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_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
+NUM_HOF_TEAMS = 30
+
+
+; significant money values
+START_MONEY EQU 3000
+MOM_MONEY EQU 2300
+
+
+; ChangeHappiness arguments (see data/happiness_changes.asm)
const_value = 1
const HAPPINESS_GAINLEVEL ; 01
const HAPPINESS_USEDITEM ; 02
@@ -140,19 +109,3 @@ const_value = 1
const HAPPINESS_REVIVALHERB ; 11
const HAPPINESS_MASSAGE ; 12
const HAPPINESS_GAINLEVELATHOME ; 13
-
-
- const_def
- const LINK_NULL ; 0
- const LINK_TIMECAPSULE ; 1
- const LINK_TRADECENTER ; 2
- const LINK_COLOSSEUM ; 3
- const LINK_MOBILE ; 4
-
-SERIAL_TIMECAPSULE EQU $60
-SERIAL_TRADECENTER EQU $70
-SERIAL_BATTLE EQU $80
-
-
-HMENURETURN_SCRIPT EQU %10000000
-HMENURETURN_ASM EQU %11111111
diff --git a/constants/music_constants.asm b/constants/music_constants.asm
index 9536ae837..453bf9098 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -110,5 +110,7 @@
; GetMapHeaderMusic picks music for this value (see home/map.asm)
MUSIC_MAHOGANY_MART EQU $64
+
; GetMapHeaderMusic picks music for this bit flag
-RADIO_TOWER_MUSIC EQU 7
+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
new file mode 100644
index 000000000..2da4abd64
--- /dev/null
+++ b/constants/npctrade_constants.asm
@@ -0,0 +1,21 @@
+; npctrade struct members (see data/npc_trades.asm)
+TRADE_DIALOG EQU 0
+TRADE_GIVEMON EQU 1
+TRADE_GETMON EQU 2
+TRADE_NICK EQU 3
+TRADE_DVS EQU 14
+TRADE_ITEM EQU 16
+TRADE_OT_ID EQU 17
+TRADE_OT_NAME EQU 19
+TRADE_GENDER EQU 30
+TRADE_PADDING EQU 31
+
+; NPCTrades indexes (see data/npc_trades.asm)
+ const_def
+ const NPCTRADE_MIKE ; 0
+ const NPCTRADE_KYLE ; 1
+ const NPCTRADE_TIM ; 2
+ const NPCTRADE_EMY ; 3
+ const NPCTRADE_CHRIS ; 4
+ const NPCTRADE_KIM ; 5
+ const NPCTRADE_FOREST ; 6
diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm
index fe602a413..b2312ab4b 100644
--- a/constants/phone_constants.asm
+++ b/constants/phone_constants.asm
@@ -1,4 +1,4 @@
-; PhoneContacts indexes (see engine/phone.asm)
+; PhoneContacts indexes (see data/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 engine/phone.asm)
+; SpecialPhoneCallList indexes (see data/phone_special.asm)
const_def
const SPECIALCALL_NONE
const SPECIALCALL_POKERUS
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index fb713507f..14635d729 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -14,7 +14,7 @@
; - PicPointers (see gfx/pics/pic_pointers.asm)
; - AlphabeticalPokedexOrder (see data/pokedex/order_alpha.asm)
; - NewPokedexOrder (see data/pokedex/order_new.asm)
-; - MonMenuIcons (see menu/mon_icons.asm)
+; - MonMenuIcons (see data/mon_menu_icons.asm)
; - Pokered_MonIndices (see engine/time_capsule/conversion.asm)
; - SortedPokemon (see misc/fixed_words.asm)
const_value set 1
@@ -274,74 +274,5 @@ NUM_POKEMON EQU const_value +- 1
const EGG ; fd
const MON_FE ; fe
-; party_struct members (see macros/wram.asm)
-MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)"
-MON_ITEM EQUS "(PartyMon1Item - PartyMon1)"
-MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)"
-MON_ID EQUS "(PartyMon1ID - PartyMon1)"
-MON_EXP EQUS "(PartyMon1Exp - PartyMon1)"
-MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)"
-MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)"
-MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)"
-MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)"
-MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)"
-MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)"
-MON_DVS EQUS "(PartyMon1DVs - PartyMon1)"
-MON_PP EQUS "(PartyMon1PP - PartyMon1)"
-MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)"
-MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)"
-MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)"
-MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)"
-MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)"
-MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)"
-MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)"
-MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)"
-MON_STATUS EQUS "(PartyMon1Status - PartyMon1)"
-MON_HP EQUS "(PartyMon1HP - PartyMon1)"
-MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)"
-MON_ATK EQUS "(PartyMon1Attack - PartyMon1)"
-MON_DEF EQUS "(PartyMon1Defense - PartyMon1)"
-MON_SPD EQUS "(PartyMon1Speed - PartyMon1)"
-MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)"
-MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)"
-BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
-PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
-REDMON_STRUCT_LENGTH EQU 44
-
-; MonMenuOptions indexes (see engine/mon_menu.asm)
-const_value SET 1
-; moves
- const MONMENU_CUT ; 1
- const MONMENU_FLY ; 2
- const MONMENU_SURF ; 3
- const MONMENU_STRENGTH ; 4
- const MONMENU_WATERFALL ; 5
- const MONMENU_FLASH ; 6
- const MONMENU_WHIRLPOOL ; 7
- const MONMENU_DIG ; 8
- const MONMENU_TELEPORT ; 9
- const MONMENU_SOFTBOILED ; 10
- const MONMENU_HEADBUTT ; 11
- const MONMENU_ROCKSMASH ; 12
- const MONMENU_MILKDRINK ; 13
- const MONMENU_SWEETSCENT ; 14
-; options
- const MONMENU_STATS ; 15
- const MONMENU_SWITCH ; 16
- const MONMENU_ITEM ; 17
- const MONMENU_CANCEL ; 18
- const MONMENU_MOVE ; 19
- const MONMENU_MAIL ; 20
- const MONMENU_ERROR ; 21
-
-; MonMenuOptions types
-MONMENU_FIELD_MOVE EQU 0
-MONMENU_MENUOPTION EQU 1
-
-NUM_MONMENU_ITEMS EQU 8
-
-; maximum number of party pokemon
-PARTY_LENGTH EQU 6
-
; number of Unown forms
NUM_UNOWN EQU 26
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index c7cf9dccb..3c6b77206 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -1,3 +1,30 @@
+; base data struct members (see data/base_stats/*.asm)
+BASE_DEX_NO EQUS "(BaseDexNo - CurBaseData)"
+BASE_STATS EQUS "(BaseStats - CurBaseData)"
+BASE_HP EQUS "(BaseHP - CurBaseData)"
+BASE_ATK EQUS "(BaseAttack - CurBaseData)"
+BASE_SPD EQUS "(BaseSpeed - CurBaseData)"
+BASE_SAT EQUS "(BaseSpecialAttack - CurBaseData)"
+BASE_SDF EQUS "(BaseSpecialDefense - CurBaseData)"
+BASE_TYPES EQUS "(BaseType - CurBaseData)"
+BASE_TYPE_1 EQUS "(BaseType1 - CurBaseData)"
+BASE_TYPE_2 EQUS "(BaseType2 - CurBaseData)"
+BASE_CATCH_RATE EQUS "(BaseCatchRate - CurBaseData)"
+BASE_EXP EQUS "(BaseExp - CurBaseData)"
+BASE_ITEMS EQUS "(BaseItems - CurBaseData)"
+BASE_ITEM_1 EQUS "(BaseItem1 - CurBaseData)"
+BASE_ITEM_2 EQUS "(BaseItem2 - CurBaseData)"
+BASE_GENDER EQUS "(BaseGender - CurBaseData)"
+BASE_UNKNOWN_1 EQUS "(BaseUnknown1 - CurBaseData)"
+BASE_EGG_STEPS EQUS "(BaseEggSteps - CurBaseData)"
+BASE_UNKNOWN_2 EQUS "(BaseUnknown2 - CurBaseData)"
+BASE_PIC_SIZE EQUS "(BasePicSize - CurBaseData)"
+BASE_PADDING EQUS "(BasePadding - CurBaseData)"
+BASE_GROWTH_RATE EQUS "(BaseGrowthRate - CurBaseData)"
+BASE_EGG_GROUPS EQUS "(BaseEggGroups - CurBaseData)"
+BASE_TMHM EQUS "(BaseTMHM - CurBaseData)"
+BASE_DATA_SIZE EQUS "(CurBaseDataEnd - CurBaseData)"
+
; BaseGrowthRate values
; GrowthRates indexes (see main.asm)
const_def
@@ -27,8 +54,48 @@ const_value SET 1
const NO_EGGS ; f
-; IconPointers indexes (see menu/mon_icons.asm)
-const_value SET 1
+; party_struct members (see macros/wram.asm)
+MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)"
+MON_ITEM EQUS "(PartyMon1Item - PartyMon1)"
+MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)"
+MON_ID EQUS "(PartyMon1ID - PartyMon1)"
+MON_EXP EQUS "(PartyMon1Exp - PartyMon1)"
+MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)"
+MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)"
+MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)"
+MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)"
+MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)"
+MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)"
+MON_DVS EQUS "(PartyMon1DVs - PartyMon1)"
+MON_PP EQUS "(PartyMon1PP - PartyMon1)"
+MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)"
+MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)"
+MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)"
+MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)"
+MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)"
+MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)"
+MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)"
+MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)"
+MON_STATUS EQUS "(PartyMon1Status - PartyMon1)"
+MON_HP EQUS "(PartyMon1HP - PartyMon1)"
+MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)"
+MON_ATK EQUS "(PartyMon1Attack - PartyMon1)"
+MON_DEF EQUS "(PartyMon1Defense - PartyMon1)"
+MON_SPD EQUS "(PartyMon1Speed - PartyMon1)"
+MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)"
+MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)"
+BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
+PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
+REDMON_STRUCT_LENGTH EQU 44
+
+
+; maximum number of party pokemon
+PARTY_LENGTH EQU 6
+
+
+; IconPointers indexes (see gfx/icon_pointers.asm)
+ const_def
+ const ICON_NULL
const ICON_POLIWAG
const ICON_JIGGLYPUFF
const ICON_DIGLETT
@@ -94,7 +161,11 @@ const_value SET 1
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
@@ -110,3 +181,36 @@ SWARM_YANMA EQU 1
FISHSWARM_QWILFISH EQU 1
FISHSWARM_REMORAID EQU 2
+
+
+; MonMenuOptions indexes (see engine/mon_menu.asm)
+const_value SET 1
+; moves
+ const MONMENU_CUT ; 1
+ const MONMENU_FLY ; 2
+ const MONMENU_SURF ; 3
+ const MONMENU_STRENGTH ; 4
+ const MONMENU_WATERFALL ; 5
+ const MONMENU_FLASH ; 6
+ const MONMENU_WHIRLPOOL ; 7
+ const MONMENU_DIG ; 8
+ const MONMENU_TELEPORT ; 9
+ const MONMENU_SOFTBOILED ; 10
+ const MONMENU_HEADBUTT ; 11
+ const MONMENU_ROCKSMASH ; 12
+ const MONMENU_MILKDRINK ; 13
+ const MONMENU_SWEETSCENT ; 14
+; options
+ const MONMENU_STATS ; 15
+ const MONMENU_SWITCH ; 16
+ const MONMENU_ITEM ; 17
+ const MONMENU_CANCEL ; 18
+ const MONMENU_MOVE ; 19
+ const MONMENU_MAIL ; 20
+ const MONMENU_ERROR ; 21
+
+; MonMenuOptions types
+MONMENU_FIELD_MOVE EQU 0
+MONMENU_MENUOPTION EQU 1
+
+NUM_MONMENU_ITEMS EQU 8
diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm
new file mode 100644
index 000000000..e7b4c4b2c
--- /dev/null
+++ b/constants/serial_constants.asm
@@ -0,0 +1,12 @@
+; link types
+ const_def
+ const LINK_NULL ; 0
+ const LINK_TIMECAPSULE ; 1
+ const LINK_TRADECENTER ; 2
+ const LINK_COLOSSEUM ; 3
+ const LINK_MOBILE ; 4
+
+
+SERIAL_TIMECAPSULE EQU $60
+SERIAL_TRADECENTER EQU $70
+SERIAL_BATTLE EQU $80
diff --git a/constants/sfx_constants.asm b/constants/sfx_constants.asm
index f54235049..0dee70793 100644
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -150,8 +150,8 @@
const SFX_FANFARE_2 ; 92
const SFX_REGISTER_PHONE_NUMBER ; 93
const SFX_3RD_PLACE ; 94
- const SFX_GET_EGG_FROM_DAYCARE_MAN ; 95
- const SFX_GET_EGG_FROM_DAYCARE_LADY ; 96
+ const SFX_GET_EGG_FROM_DAY_CARE_MAN ; 95
+ const SFX_GET_EGG_FROM_DAY_CARE_LADY ; 96
const SFX_MOVE_DELETED ; 97
const SFX_2ND_PLACE ; 98
const SFX_1ST_PLACE ; 99
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index 8dc63402a..cf8d50a91 100644
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,5 +1,5 @@
; sprite ids
-; SpriteHeaders indexes (see gfx/overworld/sprite_headers.asm)
+; SpriteHeaders indexes (see gfx/sprite_headers.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 engine/overworld.asm)
+; SpriteMons indexes (see data/sprite_mons.asm)
const_value SET $80
SPRITE_POKEMON EQU const_value
const SPRITE_UNOWN ; 80
@@ -146,8 +146,8 @@ SPRITE_POKEMON EQU const_value
; special GetMonSprite values (see engine/overworld.asm)
const_value SET $e0
- const SPRITE_DAYCARE_MON_1 ; e0
- const SPRITE_DAYCARE_MON_2 ; e1
+ const SPRITE_DAY_CARE_MON_1 ; e0
+ const SPRITE_DAY_CARE_MON_2 ; e1
; VariableSprites indexes (see wram.asm)
const_value SET $f0
@@ -166,7 +166,7 @@ SPRITE_VARS EQU const_value
const SPRITE_COPYCAT ; fb
const SPRITE_JANINE_IMPERSONATOR ; fc
-; sprite_header struct members (see gfx/overworld/sprite_headers.asm)
+; sprite_header struct members (see gfx/sprite_headers.asm)
const_def
const SPRITEHEADER_ADDR_LO
const SPRITEHEADER_ADDR_HI
@@ -193,6 +193,17 @@ const_value SET 1
const PAL_OW_TREE ; 6
const PAL_OW_ROCK ; 7
+; person_events set bit 3 so as not to use the sprite's default palette
+const_value set (1 << 3)
+ const PAL_NPC_RED ; 8
+ const PAL_NPC_BLUE ; 9
+ const PAL_NPC_GREEN ; a
+ const PAL_NPC_BROWN ; b
+ const PAL_NPC_PINK ; c
+ const PAL_NPC_SILVER ; d
+ const PAL_NPC_TREE ; e
+ const PAL_NPC_ROCK ; f
+
; SpriteMovementData indexes (see data/map_objects.asm)
const_def
const SPRITEMOVEDATA_00 ; 00
@@ -315,7 +326,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const PERSON_ACTION_GRASS_SHAKE
const PERSON_ACTION_SKYFALL
-; Facings indexes (see engine/facings.asm)
+; Facings indexes (see data/facings.asm)
const_def
const FACING_STEP_DOWN_0
const FACING_STEP_DOWN_1
@@ -369,7 +380,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const SPRITEANIMSTRUCT_0E ; e
const SPRITEANIMSTRUCT_0F ; f
-; SpriteAnimFrameData indexes (see data/sprite_engine.asm)
+; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
const_def
const SPRITE_ANIM_FRAMESET_00
const SPRITE_ANIM_FRAMESET_PARTY_MON
@@ -476,7 +487,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
-; SpriteAnimSeqData indexes (see engine/sprites.asm)
+; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
const_def
const SPRITE_ANIM_INDEX_PARTY_MON
const SPRITE_ANIM_INDEX_01
@@ -524,7 +535,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
const SPRITE_ANIM_INDEX_CELEBI
-; SpriteAnimOAMData indexes (see data/sprite_engine.asm)
+; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
const_def
const SPRITE_ANIM_FRAME_IDX_00
const SPRITE_ANIM_FRAME_IDX_01
diff --git a/constants/tilemap_constants.asm b/constants/tileset_constants.asm
index 702dc92bf..d06e22cc6 100644
--- a/constants/tilemap_constants.asm
+++ b/constants/tileset_constants.asm
@@ -11,7 +11,7 @@ const_value SET 1
const TILESET_KANTO ; 03
const TILESET_BATTLE_TOWER_OUTSIDE ; 04
const TILESET_HOUSE_1 ; 05
- const TILESET_KRISS_HOUSE ; 06
+ const TILESET_PLAYERS_HOUSE ; 06
const TILESET_POKECENTER ; 07
const TILESET_GATE ; 08
const TILESET_PORT ; 09
@@ -21,11 +21,11 @@ const_value SET 1
const TILESET_CELADON_MANSION ; 0d
const TILESET_GAME_CORNER ; 0e
const TILESET_GYM_1 ; 0f
- const TILESET_KURT_HOUSE ; 10
+ const TILESET_KURTS_HOUSE ; 10
const TILESET_TRAIN_STATION ; 11
const TILESET_OLIVINE_GYM ; 12
const TILESET_LIGHTHOUSE ; 13
- const TILESET_KRISS_HOUSE_2F ; 14
+ const TILESET_PLAYERS_HOUSE_2F ; 14
const TILESET_POKECOM_CENTER ; 15
const TILESET_BATTLE_TOWER ; 16
const TILESET_SPROUT_TOWER ; 17
@@ -37,7 +37,7 @@ const_value SET 1
const TILESET_ICE_PATH ; 1d
const TILESET_WHIRL_ISLANDS ; 1e
const TILESET_ILEX_FOREST ; 1f
- const TILESET_32 ; 20
+ 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
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index 42b499abb..49a0df454 100644
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -2,8 +2,8 @@
; `trainerclass` indexes are for:
; - TrainerClassAttributes (see trainers/attributes.asm)
; - TrainerClassDVs (see trainers/dvs.asm)
+; - TrainerEncounterMusic (see trainers/encounter_music.asm)
; - TrainerGroups (see trainers/trainer_pointers.asm)
-; - TrainerEncounterMusic (see audio/trainer_encounters.asm)
; - BTTrainerClassGenders (see misc/battle_tower_47.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see trainers/trainers.asm)
enum_start
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 5bb1013ac..23692fdef 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -7,27 +7,38 @@
const WILDMON ; 4
; Options: (bits) ; cfcc
-const_value SET 5
- const STEREO ; 5
- const BATTLE_SHIFT ; 6
- const BATTLE_SCENE ; 7
-
-; Options: (bits 0-2 values) ; cfcc
-FAST_TEXT EQU 0
-MED_TEXT EQU 1
-SLOW_TEXT EQU 2
-NO_TEXT_SCROLL EQU 4
+const_value SET 4
+ const NO_TEXT_SCROLL ; 4
+ const STEREO ; 5
+ const BATTLE_SHIFT ; 6
+ const BATTLE_SCENE ; 7
+
+; Options: (bits 0-2)
+TEXT_DELAY_FAST EQU 1
+TEXT_DELAY_MED EQU 3
+TEXT_DELAY_SLOW EQU 5
+
+; TextBoxFrame: ; cfce
+ const_def
+ const FRAME_1 ; 0
+ const FRAME_2 ; 1
+ const FRAME_3 ; 2
+ const FRAME_4 ; 3
+ const FRAME_5 ; 4
+ const FRAME_6 ; 5
+ const FRAME_7 ; 6
+ const FRAME_8 ; 7
; Options2:
const_def
const MENU_ACCOUNT ; 0
; GBPrinter:
-PRINT_LIGHTEST EQU $00
-PRINT_LIGHTER EQU $20
-PRINT_NORMAL EQU $40
-PRINT_DARKER EQU $60
-PRINT_DARKEST EQU $7f
+GBPRINTER_LIGHTEST EQU $00
+GBPRINTER_LIGHTER EQU $20
+GBPRINTER_NORMAL EQU $40
+GBPRINTER_DARKER EQU $60
+GBPRINTER_DARKEST EQU $7f
; WalkingDirection: ; d043
const_value SET -1
@@ -37,6 +48,11 @@ const_value SET -1
const LEFT ; 2
const RIGHT ; 3
+DOWN_MASK EQU 1 << DOWN
+UP_MASK EQU 1 << UP
+LEFT_MASK EQU 1 << LEFT
+RIGHT_MASK EQU 1 << RIGHT
+
; FacingDirection: ; d044
FACE_CURRENT EQU 0
FACE_DOWN EQU 8
@@ -46,10 +62,15 @@ FACE_RIGHT EQU 1
; TimeOfDay: ; d269
const_def
- const MORN ; 0
- const DAY ; 1
- const NITE ; 2
- const DARKNESS ; 3
+ const MORN_F ; 0
+ const DAY_F ; 1
+ const NITE_F ; 2
+ const DARKNESS_F ; 3
+
+MORN EQU 1 << MORN_F
+DAY EQU 1 << DAY_F
+NITE EQU 1 << NITE_F
+DARKNESS EQU 1 << DARKNESS_F
; ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
@@ -95,13 +116,13 @@ NUM_OBJECT_STRUCTS EQU 13
; After-Champion Spawn
SPAWN_LANCE EQU 1
-SPAWN_RED EQU 2
+SPAWN_RED EQU 2
; wPokemonWithdrawDepositParameter
-PC_WITHDRAW EQU 0
-PC_DEPOSIT EQU 1
-DAYCARE_WITHDRAW EQU 2
-DAYCARE_DEPOSIT EQU 3
+PC_WITHDRAW EQU 0
+PC_DEPOSIT EQU 1
+DAY_CARE_WITHDRAW EQU 2
+DAY_CARE_DEPOSIT EQU 3
; wCurrentDexMode
const_def