shithub: pokered

Download patch

ref: aa97e196dd5b37e89db5ddf154dc7aea9b02a045
parent: 54d76dec388a70260aad6ef6acb94a5b9f95fd6d
parent: 3e572b6f48b81e5340980c13b1b37b2907942713
author: Rangi <35663410+Rangi42@users.noreply.github.com>
date: Sat Jul 11 11:47:19 EDT 2020

Merge pull request #269 from Rangi42/master

Remove enum; add const_skip and const_next

--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -42,18 +42,20 @@
 HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
 HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
 
-REG_DUTY_SOUND_LEN  EQU 1
-REG_VOLUME_ENVELOPE EQU 2
-REG_FREQUENCY_LO    EQU 3
+	const_def 1
+	const REG_DUTY_SOUND_LEN  ; 1
+	const REG_VOLUME_ENVELOPE ; 2
+	const REG_FREQUENCY_LO    ; 3
 
 ; wChannelFlags1 constants
-BIT_PERFECT_PITCH          EQU 0 ; controlled by toggle_perfect_pitch command
-BIT_SOUND_CALL             EQU 1 ; if in sound call
-BIT_NOISE_OR_SFX           EQU 2 ; if channel is the music noise channel or an SFX channel
-BIT_VIBRATO_DIRECTION      EQU 3 ; if the pitch is above or below normal (cycles)
-BIT_PITCH_SLIDE_ON         EQU 4 ; if pitch slide is active
-BIT_PITCH_SLIDE_DECREASING EQU 5 ; if the pitch slide frequency is decreasing (instead of increasing)
-BIT_ROTATE_DUTY_CYCLE      EQU 6 ; if rotating duty cycle
+	const_def
+	const BIT_PERFECT_PITCH          ; 0 ; controlled by toggle_perfect_pitch command
+	const BIT_SOUND_CALL             ; 1 ; if in sound call
+	const BIT_NOISE_OR_SFX           ; 2 ; if channel is the music noise channel or an SFX channel
+	const BIT_VIBRATO_DIRECTION      ; 3 ; if the pitch is above or below normal (cycles)
+	const BIT_PITCH_SLIDE_ON         ; 4 ; if pitch slide is active
+	const BIT_PITCH_SLIDE_DECREASING ; 5 ; if the pitch slide frequency is decreasing (instead of increasing)
+	const BIT_ROTATE_DUTY_CYCLE      ; 6 ; if rotating duty cycle
 
 ; wChannelFlags2 constant (only has one flag)
 BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -9,9 +9,10 @@
 BIT_TEST_BATTLE EQU 0
 
 ; battle type constants
-BATTLE_TYPE_NORMAL  EQU 0
-BATTLE_TYPE_OLD_MAN EQU 1
-BATTLE_TYPE_SAFARI  EQU 2
+	const_def
+	const BATTLE_TYPE_NORMAL  ; 0
+	const BATTLE_TYPE_OLD_MAN ; 1
+	const BATTLE_TYPE_SAFARI  ; 2
 
 ; damage limits before type effectiveness
 MIN_NEUTRAL_DAMAGE EQU 2
@@ -30,35 +31,39 @@
 
 ; non-volatile statuses
 SLP EQU %111 ; sleep counter
-PSN EQU 3
-BRN EQU 4
-FRZ EQU 5
-PAR EQU 6
+	const_def 3
+	const PSN ; 3
+	const BRN ; 4
+	const FRZ ; 5
+	const PAR ; 6
 
 MAX_STAT_VALUE EQU 999
 
 ; volatile statuses 1
-STORING_ENERGY           EQU 0 ; Bide
-THRASHING_ABOUT          EQU 1 ; e.g. Thrash
-ATTACKING_MULTIPLE_TIMES EQU 2 ; e.g. Double Kick, Fury Attack
-FLINCHED                 EQU 3
-CHARGING_UP              EQU 4 ; e.g. Solar Beam, Fly
-USING_TRAPPING_MOVE      EQU 5 ; e.g. Wrap
-INVULNERABLE             EQU 6 ; charging up Fly/Dig
-CONFUSED                 EQU 7
+	const_def
+	const STORING_ENERGY           ; 0 ; Bide
+	const THRASHING_ABOUT          ; 1 ; e.g. Thrash
+	const ATTACKING_MULTIPLE_TIMES ; 2 ; e.g. Double Kick, Fury Attack
+	const FLINCHED                 ; 3
+	const CHARGING_UP              ; 4 ; e.g. Solar Beam, Fly
+	const USING_TRAPPING_MOVE      ; 5 ; e.g. Wrap
+	const INVULNERABLE             ; 6 ; charging up Fly/Dig
+	const CONFUSED                 ; 7
 
 ; volatile statuses 2
-USING_X_ACCURACY    EQU 0
-PROTECTED_BY_MIST   EQU 1
-GETTING_PUMPED      EQU 2 ; Focus Energy
-;                   EQU 3 ; unused
-HAS_SUBSTITUTE_UP   EQU 4
-NEEDS_TO_RECHARGE   EQU 5 ; Hyper Beam
-USING_RAGE          EQU 6
-SEEDED              EQU 7
+	const_def
+	const USING_X_ACCURACY    ; 0
+	const PROTECTED_BY_MIST   ; 1
+	const GETTING_PUMPED      ; 2 ; Focus Energy
+	const_skip                ; 3 ; unused
+	const HAS_SUBSTITUTE_UP   ; 4
+	const NEEDS_TO_RECHARGE   ; 5 ; Hyper Beam
+	const USING_RAGE          ; 6
+	const SEEDED              ; 7
 
 ; volatile statuses 3
-BADLY_POISONED      EQU 0
-HAS_LIGHT_SCREEN_UP EQU 1
-HAS_REFLECT_UP      EQU 2
-TRANSFORMED         EQU 3
+	const_def
+	const BADLY_POISONED      ; 0
+	const HAS_LIGHT_SCREEN_UP ; 1
+	const HAS_REFLECT_UP      ; 2
+	const TRANSFORMED         ; 3
--- a/constants/credits_constants.asm
+++ b/constants/credits_constants.asm
@@ -64,10 +64,10 @@
 	const CRED_CLUB           ; $3E
 	const CRED_PAAD           ; $3F
 
-const_value = $FA
-	const CRED_THE_END       ; $FA
-	const CRED_COPYRIGHT     ; $FB
-	const CRED_TEXT          ; $FC
-	const CRED_TEXT_FADE     ; $FD
-	const CRED_TEXT_MON      ; $FE
+	const_def -1, -1
 	const CRED_TEXT_FADE_MON ; $FF
+	const CRED_TEXT_MON      ; $FE
+	const CRED_TEXT_FADE     ; $FD
+	const CRED_TEXT          ; $FC
+	const CRED_COPYRIGHT     ; $FB
+	const CRED_THE_END       ; $FA
--- a/constants/event_constants.asm
+++ b/constants/event_constants.asm
@@ -1,36 +1,15 @@
+; Pallet Town events
 	const_def
 	const EVENT_FOLLOWED_OAK_INTO_LAB
-	const EVENT_001
-	const EVENT_002
+	const_skip 2
 	const EVENT_HALL_OF_FAME_DEX_RATING
-	const EVENT_004
-	const EVENT_005
+	const_skip 2
 	const EVENT_PALLET_AFTER_GETTING_POKEBALLS
-	const EVENT_007
-	const EVENT_008
-	const EVENT_009
-	const EVENT_00A
-	const EVENT_00B
-	const EVENT_00C
-	const EVENT_00D
-	const EVENT_00E
-	const EVENT_00F
-	const EVENT_010
-	const EVENT_011
-	const EVENT_012
-	const EVENT_013
-	const EVENT_014
-	const EVENT_015
-	const EVENT_016
-	const EVENT_017
+	const_skip 17
 	const EVENT_GOT_TOWN_MAP
 	const EVENT_ENTERED_BLUES_HOUSE
 	const EVENT_DAISY_WALKING
-	const EVENT_01B
-	const EVENT_01C
-	const EVENT_01D
-	const EVENT_01E
-	const EVENT_01F
+	const_skip 5
 	const EVENT_FOLLOWED_OAK_INTO_LAB_2
 	const EVENT_OAK_ASKED_TO_CHOOSE_MON
 	const EVENT_GOT_STARTER
@@ -39,46 +18,15 @@
 	const EVENT_GOT_POKEDEX
 	const EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
 	const EVENT_OAK_APPEARED_IN_PALLET
+
+; Viridian City events
+	const_next $28
 	const EVENT_VIRIDIAN_GYM_OPEN
 	const EVENT_GOT_TM42
-	const EVENT_02A
-	const EVENT_02B
-	const EVENT_02C
-	const EVENT_02D
-	const EVENT_02E
-	const EVENT_02F
-	const EVENT_030
-	const EVENT_031
-	const EVENT_032
-	const EVENT_033
-	const EVENT_034
-	const EVENT_035
-	const EVENT_036
-	const EVENT_037
+	const_skip 14
 	const EVENT_OAK_GOT_PARCEL
 	const EVENT_GOT_OAKS_PARCEL
-	const EVENT_03A
-	const EVENT_03B
-	const EVENT_03C
-	const EVENT_03D
-	const EVENT_03E
-	const EVENT_03F
-	const EVENT_040
-	const EVENT_041
-	const EVENT_042
-	const EVENT_043
-	const EVENT_044
-	const EVENT_045
-	const EVENT_046
-	const EVENT_047
-	const EVENT_048
-	const EVENT_049
-	const EVENT_04A
-	const EVENT_04B
-	const EVENT_04C
-	const EVENT_04D
-	const EVENT_04E
-	const EVENT_04F
+	const_skip 22
 	const EVENT_GOT_TM27
 	const EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
 	const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0
@@ -89,340 +37,90 @@
 	const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5
 	const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6
 	const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7
-	const EVENT_05A
-	const EVENT_05B
-	const EVENT_05C
-	const EVENT_05D
-	const EVENT_05E
-	const EVENT_05F
-	const EVENT_060
-	const EVENT_061
-	const EVENT_062
-	const EVENT_063
-	const EVENT_064
-	const EVENT_065
-	const EVENT_066
-	const EVENT_067
+
+; Pewter City events
+	const_next $68
 	const EVENT_BOUGHT_MUSEUM_TICKET
 	const EVENT_GOT_OLD_AMBER
-	const EVENT_06A
-	const EVENT_06B
-	const EVENT_06C
-	const EVENT_06D
-	const EVENT_06E
-	const EVENT_06F
-	const EVENT_070
-	const EVENT_071
+	const_skip 8
 	const EVENT_BEAT_PEWTER_GYM_TRAINER_0
-	const EVENT_073
-	const EVENT_074
-	const EVENT_075
+	const_skip 3
 	const EVENT_GOT_TM34
 	const EVENT_BEAT_BROCK
-	const EVENT_078
-	const EVENT_079
-	const EVENT_07A
-	const EVENT_07B
-	const EVENT_07C
-	const EVENT_07D
-	const EVENT_07E
-	const EVENT_07F
-	const EVENT_080
-	const EVENT_081
-	const EVENT_082
-	const EVENT_083
-	const EVENT_084
-	const EVENT_085
-	const EVENT_086
-	const EVENT_087
-	const EVENT_088
-	const EVENT_089
-	const EVENT_08A
-	const EVENT_08B
-	const EVENT_08C
-	const EVENT_08D
-	const EVENT_08E
-	const EVENT_08F
-	const EVENT_090
-	const EVENT_091
-	const EVENT_092
-	const EVENT_093
-	const EVENT_094
-	const EVENT_095
-	const EVENT_096
-	const EVENT_097
+
+; Cerulean City events
+	const_next $98
 	const EVENT_BEAT_CERULEAN_RIVAL
-	const EVENT_099
-	const EVENT_09A
-	const EVENT_09B
-	const EVENT_09C
-	const EVENT_09D
-	const EVENT_09E
-	const EVENT_09F
-	const EVENT_0A0
-	const EVENT_0A1
-	const EVENT_0A2
-	const EVENT_0A3
-	const EVENT_0A4
-	const EVENT_0A5
-	const EVENT_0A6
+	const_skip 14
 	const EVENT_BEAT_CERULEAN_ROCKET_THIEF
-	const EVENT_0A8
-	const EVENT_0A9
-	const EVENT_0AA
-	const EVENT_0AB
-	const EVENT_0AC
-	const EVENT_0AD
-	const EVENT_0AE
-	const EVENT_0AF
-	const EVENT_0B0
-	const EVENT_0B1
-	const EVENT_0B2
-	const EVENT_0B3
-	const EVENT_0B4
-	const EVENT_0B5
-	const EVENT_0B6
-	const EVENT_0B7
-	const EVENT_0B8
-	const EVENT_0B9
+	const_skip 18
 	const EVENT_BEAT_CERULEAN_GYM_TRAINER_0
 	const EVENT_BEAT_CERULEAN_GYM_TRAINER_1
-	const EVENT_0BC
-	const EVENT_0BD
+	const_skip 2
 	const EVENT_GOT_TM11
 	const EVENT_BEAT_MISTY
 	const EVENT_GOT_BICYCLE
-	const EVENT_0C1
-	const EVENT_0C2
-	const EVENT_0C3
-	const EVENT_0C4
-	const EVENT_0C5
-	const EVENT_0C6
-	const EVENT_0C7
-	const EVENT_0C8
-	const EVENT_0C9
-	const EVENT_0CA
-	const EVENT_0CB
-	const EVENT_0CC
-	const EVENT_0CD
-	const EVENT_0CE
-	const EVENT_0CF
-	const EVENT_0D0
-	const EVENT_0D1
-	const EVENT_0D2
-	const EVENT_0D3
-	const EVENT_0D4
-	const EVENT_0D5
-	const EVENT_0D6
-	const EVENT_0D7
-	const EVENT_0D8
-	const EVENT_0D9
-	const EVENT_0DA
-	const EVENT_0DB
-	const EVENT_0DC
-	const EVENT_0DD
-	const EVENT_0DE
-	const EVENT_0DF
-	const EVENT_0E0
-	const EVENT_0E1
-	const EVENT_0E2
-	const EVENT_0E3
-	const EVENT_0E4
-	const EVENT_0E5
-	const EVENT_0E6
-	const EVENT_0E7
-	const EVENT_0E8
-	const EVENT_0E9
-	const EVENT_0EA
-	const EVENT_0EB
-	const EVENT_0EC
-	const EVENT_0ED
+
+; Lavender Town events
+	const_next $F0 - 2
 	const EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
 	const EVENT_BEAT_POKEMON_TOWER_RIVAL
-	const EVENT_0F0
+	const_skip
 	const EVENT_BEAT_POKEMONTOWER_3_TRAINER_0
 	const EVENT_BEAT_POKEMONTOWER_3_TRAINER_1
 	const EVENT_BEAT_POKEMONTOWER_3_TRAINER_2
-	const EVENT_0F4
-	const EVENT_0F5
-	const EVENT_0F6
-	const EVENT_0F7
-	const EVENT_0F8
+	const_skip 5
 	const EVENT_BEAT_POKEMONTOWER_4_TRAINER_0
 	const EVENT_BEAT_POKEMONTOWER_4_TRAINER_1
 	const EVENT_BEAT_POKEMONTOWER_4_TRAINER_2
-	const EVENT_0FC
-	const EVENT_0FD
-	const EVENT_0FE
-	const EVENT_0FF
-	const EVENT_100
-	const EVENT_101
+	const_skip 6
 	const EVENT_BEAT_POKEMONTOWER_5_TRAINER_0
 	const EVENT_BEAT_POKEMONTOWER_5_TRAINER_1
 	const EVENT_BEAT_POKEMONTOWER_5_TRAINER_2
 	const EVENT_BEAT_POKEMONTOWER_5_TRAINER_3
-	const EVENT_106
+	const_skip
 	const EVENT_IN_PURIFIED_ZONE
-	const EVENT_108
+	const_skip
 	const EVENT_BEAT_POKEMONTOWER_6_TRAINER_0
 	const EVENT_BEAT_POKEMONTOWER_6_TRAINER_1
 	const EVENT_BEAT_POKEMONTOWER_6_TRAINER_2
-	const EVENT_10C
-	const EVENT_10D
-	const EVENT_10E
+	const_skip 3
 	const EVENT_BEAT_GHOST_MAROWAK
-	const EVENT_110
+	const_skip
 	const EVENT_BEAT_POKEMONTOWER_7_TRAINER_0
 	const EVENT_BEAT_POKEMONTOWER_7_TRAINER_1
 	const EVENT_BEAT_POKEMONTOWER_7_TRAINER_2
-	const EVENT_114
-	const EVENT_115
-	const EVENT_116
+	const_skip 3
 	const EVENT_RESCUED_MR_FUJI_2
-	const EVENT_118
-	const EVENT_119
-	const EVENT_11A
-	const EVENT_11B
-	const EVENT_11C
-	const EVENT_11D
-	const EVENT_11E
-	const EVENT_11F
-	const EVENT_120
-	const EVENT_121
-	const EVENT_122
-	const EVENT_123
-	const EVENT_124
-	const EVENT_125
-	const EVENT_126
-	const EVENT_127
+	const_skip 16
 	const EVENT_GOT_POKE_FLUTE
-	const EVENT_129
-	const EVENT_12A
-	const EVENT_12B
-	const EVENT_12C
-	const EVENT_12D
-	const EVENT_12E
-	const EVENT_12F
-	const EVENT_130
-	const EVENT_131
-	const EVENT_132
-	const EVENT_133
-	const EVENT_134
-	const EVENT_135
-	const EVENT_136
-	const EVENT_137
-	const EVENT_138
-	const EVENT_139
-	const EVENT_13A
-	const EVENT_13B
-	const EVENT_13C
-	const EVENT_13D
-	const EVENT_13E
-	const EVENT_13F
-	const EVENT_140
-	const EVENT_141
-	const EVENT_142
-	const EVENT_143
-	const EVENT_144
-	const EVENT_145
-	const EVENT_146
-	const EVENT_147
-	const EVENT_148
-	const EVENT_149
-	const EVENT_14A
-	const EVENT_14B
-	const EVENT_14C
-	const EVENT_14D
-	const EVENT_14E
-	const EVENT_14F
-	const EVENT_150
+
+; Vermilion City events
+	const_next $150
+	const_skip
 	const EVENT_GOT_BIKE_VOUCHER
-	const EVENT_152
-	const EVENT_153
-	const EVENT_154
-	const EVENT_155
+	const_skip 4
 	const EVENT_SEEL_FAN_BOAST
 	const EVENT_PIKACHU_FAN_BOAST
-	const EVENT_158
-	const EVENT_159
-	const EVENT_15A
-	const EVENT_15B
-	const EVENT_15C
-	const EVENT_15D
-	const EVENT_15E
-	const EVENT_15F
+	const_skip 8
 	const EVENT_2ND_LOCK_OPENED
 	const EVENT_1ST_LOCK_OPENED
 	const EVENT_BEAT_VERMILION_GYM_TRAINER_0
 	const EVENT_BEAT_VERMILION_GYM_TRAINER_1
 	const EVENT_BEAT_VERMILION_GYM_TRAINER_2
-	const EVENT_165
+	const_skip
 	const EVENT_GOT_TM24
 	const EVENT_BEAT_LT_SURGE
-	const EVENT_168
-	const EVENT_169
-	const EVENT_16A
-	const EVENT_16B
-	const EVENT_16C
-	const EVENT_16D
-	const EVENT_16E
-	const EVENT_16F
-	const EVENT_170
-	const EVENT_171
-	const EVENT_172
-	const EVENT_173
-	const EVENT_174
-	const EVENT_175
-	const EVENT_176
-	const EVENT_177
-	const EVENT_178
-	const EVENT_179
-	const EVENT_17A
-	const EVENT_17B
-	const EVENT_17C
-	const EVENT_17D
-	const EVENT_17E
-	const EVENT_17F
+
+; Celadon City events
+	const_next $180
 	const EVENT_GOT_TM41
-	const EVENT_181
-	const EVENT_182
-	const EVENT_183
-	const EVENT_184
-	const EVENT_185
-	const EVENT_186
-	const EVENT_187
-	const EVENT_188
-	const EVENT_189
-	const EVENT_18A
-	const EVENT_18B
+	const_skip 11
 	const EVENT_GOT_TM13
 	const EVENT_GOT_TM48
 	const EVENT_GOT_TM49
 	const EVENT_GOT_TM18
-	const EVENT_190
-	const EVENT_191
-	const EVENT_192
-	const EVENT_193
-	const EVENT_194
-	const EVENT_195
-	const EVENT_196
-	const EVENT_197
-	const EVENT_198
-	const EVENT_199
-	const EVENT_19A
-	const EVENT_19B
-	const EVENT_19C
-	const EVENT_19D
-	const EVENT_19E
-	const EVENT_19F
-	const EVENT_1A0
-	const EVENT_1A1
-	const EVENT_1A2
-	const EVENT_1A3
-	const EVENT_1A4
-	const EVENT_1A5
-	const EVENT_1A6
-	const EVENT_1A7
+	const_skip 24
 	const EVENT_GOT_TM21
 	const EVENT_BEAT_ERIKA
 	const EVENT_BEAT_CELADON_GYM_TRAINER_0
@@ -432,173 +130,25 @@
 	const EVENT_BEAT_CELADON_GYM_TRAINER_4
 	const EVENT_BEAT_CELADON_GYM_TRAINER_5
 	const EVENT_BEAT_CELADON_GYM_TRAINER_6
-	const EVENT_1B1
-	const EVENT_1B2
-	const EVENT_1B3
-	const EVENT_1B4
-	const EVENT_1B5
-	const EVENT_1B6
-	const EVENT_1B7
-	const EVENT_1B8
+	const_skip 7
+	const EVENT_1B8 ; ???
 	const EVENT_FOUND_ROCKET_HIDEOUT
 	const EVENT_GOT_10_COINS
 	const EVENT_GOT_20_COINS
 	const EVENT_GOT_20_COINS_2
-	const EVENT_1BD
-	const EVENT_1BE
-	const EVENT_1BF
-	const EVENT_1C0
-	const EVENT_1C1
-	const EVENT_1C2
-	const EVENT_1C3
-	const EVENT_1C4
-	const EVENT_1C5
-	const EVENT_1C6
-	const EVENT_1C7
-	const EVENT_1C8
-	const EVENT_1C9
-	const EVENT_1CA
-	const EVENT_1CB
-	const EVENT_1CC
-	const EVENT_1CD
-	const EVENT_1CE
-	const EVENT_1CF
-	const EVENT_1D0
-	const EVENT_1D1
-	const EVENT_1D2
-	const EVENT_1D3
-	const EVENT_1D4
-	const EVENT_1D5
-	const EVENT_1D6
-	const EVENT_1D7
-	const EVENT_1D8
-	const EVENT_1D9
-	const EVENT_1DA
-	const EVENT_1DB
-	const EVENT_1DC
-	const EVENT_1DD
-	const EVENT_1DE
-	const EVENT_1DF
+	const_skip 2
+	const EVENT_1BF ; ???
+	const_skip 32
 	const EVENT_GOT_COIN_CASE
-	const EVENT_1E1
-	const EVENT_1E2
-	const EVENT_1E3
-	const EVENT_1E4
-	const EVENT_1E5
-	const EVENT_1E6
-	const EVENT_1E7
-	const EVENT_1E8
-	const EVENT_1E9
-	const EVENT_1EA
-	const EVENT_1EB
-	const EVENT_1EC
-	const EVENT_1ED
-	const EVENT_1EE
-	const EVENT_1EF
-	const EVENT_1F0
-	const EVENT_1F1
-	const EVENT_1F2
-	const EVENT_1F3
-	const EVENT_1F4
-	const EVENT_1F5
-	const EVENT_1F6
-	const EVENT_1F7
-	const EVENT_1F8
-	const EVENT_1F9
-	const EVENT_1FA
-	const EVENT_1FB
-	const EVENT_1FC
-	const EVENT_1FD
-	const EVENT_1FE
-	const EVENT_1FF
-	const EVENT_200
-	const EVENT_201
-	const EVENT_202
-	const EVENT_203
-	const EVENT_204
-	const EVENT_205
-	const EVENT_206
-	const EVENT_207
-	const EVENT_208
-	const EVENT_209
-	const EVENT_20A
-	const EVENT_20B
-	const EVENT_20C
-	const EVENT_20D
-	const EVENT_20E
-	const EVENT_20F
-	const EVENT_210
-	const EVENT_211
-	const EVENT_212
-	const EVENT_213
-	const EVENT_214
-	const EVENT_215
-	const EVENT_216
-	const EVENT_217
-	const EVENT_218
-	const EVENT_219
-	const EVENT_21A
-	const EVENT_21B
-	const EVENT_21C
-	const EVENT_21D
-	const EVENT_21E
-	const EVENT_21F
-	const EVENT_220
-	const EVENT_221
-	const EVENT_222
-	const EVENT_223
-	const EVENT_224
-	const EVENT_225
-	const EVENT_226
-	const EVENT_227
-	const EVENT_228
-	const EVENT_229
-	const EVENT_22A
-	const EVENT_22B
-	const EVENT_22C
-	const EVENT_22D
-	const EVENT_22E
-	const EVENT_22F
-	const EVENT_230
-	const EVENT_231
-	const EVENT_232
-	const EVENT_233
-	const EVENT_234
-	const EVENT_235
-	const EVENT_236
-	const EVENT_237
+
+; Fuchsia City events
+	const_next $238
 	const EVENT_GOT_HM04
 	const EVENT_GAVE_GOLD_TEETH
-	const EVENT_23A
-	const EVENT_23B
-	const EVENT_23C
-	const EVENT_23D
-	const EVENT_23E
-	const EVENT_23F
-	const EVENT_240
-	const EVENT_241
-	const EVENT_242
-	const EVENT_243
-	const EVENT_244
-	const EVENT_245
-	const EVENT_246
-	const EVENT_247
-	const EVENT_248
-	const EVENT_249
-	const EVENT_24A
-	const EVENT_24B
-	const EVENT_24C
-	const EVENT_24D
+	const_skip 20
 	const EVENT_SAFARI_GAME_OVER
 	const EVENT_IN_SAFARI_ZONE
-	const EVENT_250
-	const EVENT_251
-	const EVENT_252
-	const EVENT_253
-	const EVENT_254
-	const EVENT_255
-	const EVENT_256
-	const EVENT_257
+	const_skip 8
 	const EVENT_GOT_TM06
 	const EVENT_BEAT_KOGA
 	const EVENT_BEAT_FUCHSIA_GYM_TRAINER_0
@@ -607,62 +157,13 @@
 	const EVENT_BEAT_FUCHSIA_GYM_TRAINER_3
 	const EVENT_BEAT_FUCHSIA_GYM_TRAINER_4
 	const EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
-	const EVENT_260
-	const EVENT_261
-	const EVENT_262
-	const EVENT_263
-	const EVENT_264
-	const EVENT_265
-	const EVENT_266
-	const EVENT_267
-	const EVENT_268
-	const EVENT_269
-	const EVENT_26A
-	const EVENT_26B
-	const EVENT_26C
-	const EVENT_26D
-	const EVENT_26E
-	const EVENT_26F
-	const EVENT_270
-	const EVENT_271
-	const EVENT_272
-	const EVENT_273
-	const EVENT_274
-	const EVENT_275
-	const EVENT_276
-	const EVENT_277
+
+; Cinnabar Island events
+	const_next $278
 	const EVENT_MANSION_SWITCH_ON
-	const EVENT_279
-	const EVENT_27A
-	const EVENT_27B
-	const EVENT_27C
-	const EVENT_27D
-	const EVENT_27E
-	const EVENT_27F
-	const EVENT_280
-	const EVENT_281
-	const EVENT_282
-	const EVENT_283
-	const EVENT_284
-	const EVENT_285
-	const EVENT_286
-	const EVENT_287
-	const EVENT_288
+	const_skip 16
 	const EVENT_BEAT_MANSION_1_TRAINER_0
-	const EVENT_28A
-	const EVENT_28B
-	const EVENT_28C
-	const EVENT_28D
-	const EVENT_28E
-	const EVENT_28F
-	const EVENT_290
-	const EVENT_291
-	const EVENT_292
-	const EVENT_293
-	const EVENT_294
-	const EVENT_295
-	const EVENT_296
-	const EVENT_297
+	const_skip 14
 	const EVENT_GOT_TM38
 	const EVENT_BEAT_BLAINE
 	const EVENT_BEAT_CINNABAR_GYM_TRAINER_0
@@ -672,13 +173,8 @@
 	const EVENT_BEAT_CINNABAR_GYM_TRAINER_4
 	const EVENT_BEAT_CINNABAR_GYM_TRAINER_5
 	const EVENT_BEAT_CINNABAR_GYM_TRAINER_6
-	const EVENT_2A1
-	const EVENT_2A2
-	const EVENT_2A3
-	const EVENT_2A4
-	const EVENT_2A5
-	const EVENT_2A6
-	const EVENT_2A7
+	const_skip 6
+	const EVENT_2A7 ; ???
 	const EVENT_CINNABAR_GYM_GATE0_UNLOCKED
 	const EVENT_CINNABAR_GYM_GATE1_UNLOCKED
 	const EVENT_CINNABAR_GYM_GATE2_UNLOCKED
@@ -686,167 +182,17 @@
 	const EVENT_CINNABAR_GYM_GATE4_UNLOCKED
 	const EVENT_CINNABAR_GYM_GATE5_UNLOCKED
 	const EVENT_CINNABAR_GYM_GATE6_UNLOCKED
-	const EVENT_2AF
-	const EVENT_2B0
-	const EVENT_2B1
-	const EVENT_2B2
-	const EVENT_2B3
-	const EVENT_2B4
-	const EVENT_2B5
-	const EVENT_2B6
-	const EVENT_2B7
-	const EVENT_2B8
-	const EVENT_2B9
-	const EVENT_2BA
-	const EVENT_2BB
-	const EVENT_2BC
-	const EVENT_2BD
-	const EVENT_2BE
-	const EVENT_2BF
-	const EVENT_2C0
-	const EVENT_2C1
-	const EVENT_2C2
-	const EVENT_2C3
-	const EVENT_2C4
-	const EVENT_2C5
-	const EVENT_2C6
-	const EVENT_2C7
-	const EVENT_2C8
-	const EVENT_2C9
-	const EVENT_2CA
-	const EVENT_2CB
-	const EVENT_2CC
-	const EVENT_2CD
-	const EVENT_2CE
-	const EVENT_2CF
-	const EVENT_2D0
-	const EVENT_2D1
-	const EVENT_2D2
-	const EVENT_2D3
-	const EVENT_2D4
-	const EVENT_2D5
-	const EVENT_2D6
+	const_skip 40
 	const EVENT_GOT_TM35
-	const EVENT_2D8
-	const EVENT_2D9
-	const EVENT_2DA
-	const EVENT_2DB
-	const EVENT_2DC
-	const EVENT_2DD
-	const EVENT_2DE
-	const EVENT_2DF
+	const_skip 8
 	const EVENT_GAVE_FOSSIL_TO_LAB
 	const EVENT_LAB_STILL_REVIVING_FOSSIL
 	const EVENT_LAB_HANDING_OVER_FOSSIL_MON
-	const EVENT_2E3
-	const EVENT_2E4
-	const EVENT_2E5
-	const EVENT_2E6
-	const EVENT_2E7
-	const EVENT_2E8
-	const EVENT_2E9
-	const EVENT_2EA
-	const EVENT_2EB
-	const EVENT_2EC
-	const EVENT_2ED
-	const EVENT_2EE
-	const EVENT_2EF
-	const EVENT_2F0
-	const EVENT_2F1
-	const EVENT_2F2
-	const EVENT_2F3
-	const EVENT_2F4
-	const EVENT_2F5
-	const EVENT_2F6
-	const EVENT_2F7
-	const EVENT_2F8
-	const EVENT_2F9
-	const EVENT_2FA
-	const EVENT_2FB
-	const EVENT_2FC
-	const EVENT_2FD
-	const EVENT_2FE
-	const EVENT_2FF
-	const EVENT_300
-	const EVENT_301
-	const EVENT_302
-	const EVENT_303
-	const EVENT_304
-	const EVENT_305
-	const EVENT_306
-	const EVENT_307
-	const EVENT_308
-	const EVENT_309
-	const EVENT_30A
-	const EVENT_30B
-	const EVENT_30C
-	const EVENT_30D
-	const EVENT_30E
-	const EVENT_30F
-	const EVENT_310
-	const EVENT_311
-	const EVENT_312
-	const EVENT_313
-	const EVENT_314
-	const EVENT_315
-	const EVENT_316
-	const EVENT_317
-	const EVENT_318
-	const EVENT_319
-	const EVENT_31A
-	const EVENT_31B
-	const EVENT_31C
-	const EVENT_31D
-	const EVENT_31E
-	const EVENT_31F
-	const EVENT_320
-	const EVENT_321
-	const EVENT_322
-	const EVENT_323
-	const EVENT_324
-	const EVENT_325
-	const EVENT_326
-	const EVENT_327
-	const EVENT_328
-	const EVENT_329
-	const EVENT_32A
-	const EVENT_32B
-	const EVENT_32C
-	const EVENT_32D
-	const EVENT_32E
-	const EVENT_32F
-	const EVENT_330
-	const EVENT_331
-	const EVENT_332
-	const EVENT_333
-	const EVENT_334
-	const EVENT_335
-	const EVENT_336
-	const EVENT_337
-	const EVENT_338
-	const EVENT_339
-	const EVENT_33A
-	const EVENT_33B
-	const EVENT_33C
-	const EVENT_33D
-	const EVENT_33E
-	const EVENT_33F
+
+; Saffron City events
+	const_next $340
 	const EVENT_GOT_TM31
-	const EVENT_341
-	const EVENT_342
-	const EVENT_343
-	const EVENT_344
-	const EVENT_345
-	const EVENT_346
-	const EVENT_347
-	const EVENT_348
-	const EVENT_349
-	const EVENT_34A
-	const EVENT_34B
-	const EVENT_34C
-	const EVENT_34D
-	const EVENT_34E
-	const EVENT_34F
+	const_skip 15
 	const EVENT_DEFEATED_FIGHTING_DOJO
 	const EVENT_BEAT_KARATE_MASTER
 	const EVENT_BEAT_FIGHTING_DOJO_TRAINER_0
@@ -855,14 +201,7 @@
 	const EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
 	const EVENT_GOT_HITMONLEE
 	const EVENT_GOT_HITMONCHAN
-	const EVENT_358
-	const EVENT_359
-	const EVENT_35A
-	const EVENT_35B
-	const EVENT_35C
-	const EVENT_35D
-	const EVENT_35E
-	const EVENT_35F
+	const_skip 8
 	const EVENT_GOT_TM46
 	const EVENT_BEAT_SABRINA
 	const EVENT_BEAT_SAFFRON_GYM_TRAINER_0
@@ -872,127 +211,22 @@
 	const EVENT_BEAT_SAFFRON_GYM_TRAINER_4
 	const EVENT_BEAT_SAFFRON_GYM_TRAINER_5
 	const EVENT_BEAT_SAFFRON_GYM_TRAINER_6
-	const EVENT_369
-	const EVENT_36A
-	const EVENT_36B
-	const EVENT_36C
-	const EVENT_36D
-	const EVENT_36E
-	const EVENT_36F
-	const EVENT_370
-	const EVENT_371
-	const EVENT_372
-	const EVENT_373
-	const EVENT_374
-	const EVENT_375
-	const EVENT_376
-	const EVENT_377
-	const EVENT_378
-	const EVENT_379
-	const EVENT_37A
-	const EVENT_37B
-	const EVENT_37C
-	const EVENT_37D
-	const EVENT_37E
-	const EVENT_37F
-	const EVENT_380
-	const EVENT_381
-	const EVENT_382
-	const EVENT_383
-	const EVENT_384
-	const EVENT_385
-	const EVENT_386
-	const EVENT_387
-	const EVENT_388
-	const EVENT_389
-	const EVENT_38A
-	const EVENT_38B
-	const EVENT_38C
-	const EVENT_38D
-	const EVENT_38E
-	const EVENT_38F
-	const EVENT_390
-	const EVENT_391
-	const EVENT_392
-	const EVENT_393
-	const EVENT_394
-	const EVENT_395
-	const EVENT_396
+	const_skip 46
 	const EVENT_SILPH_CO_RECEPTIONIST_AT_DESK
-	const EVENT_398
-	const EVENT_399
-	const EVENT_39A
-	const EVENT_39B
-	const EVENT_39C
-	const EVENT_39D
-	const EVENT_39E
-	const EVENT_39F
-	const EVENT_3A0
-	const EVENT_3A1
-	const EVENT_3A2
-	const EVENT_3A3
-	const EVENT_3A4
-	const EVENT_3A5
-	const EVENT_3A6
-	const EVENT_3A7
-	const EVENT_3A8
-	const EVENT_3A9
-	const EVENT_3AA
-	const EVENT_3AB
-	const EVENT_3AC
-	const EVENT_3AD
-	const EVENT_3AE
-	const EVENT_3AF
+	const_skip 24
 	const EVENT_GOT_TM29
-	const EVENT_3B1
-	const EVENT_3B2
-	const EVENT_3B3
-	const EVENT_3B4
-	const EVENT_3B5
-	const EVENT_3B6
-	const EVENT_3B7
-	const EVENT_3B8
-	const EVENT_3B9
-	const EVENT_3BA
-	const EVENT_3BB
-	const EVENT_3BC
-	const EVENT_3BD
-	const EVENT_3BE
-	const EVENT_3BF
+
+; Route 1 events
+	const_next $3C0
 	const EVENT_GOT_POTION_SAMPLE
-	const EVENT_3C1
-	const EVENT_3C2
-	const EVENT_3C3
-	const EVENT_3C4
-	const EVENT_3C5
-	const EVENT_3C6
-	const EVENT_3C7
-	const EVENT_3C8
-	const EVENT_3C9
-	const EVENT_3CA
-	const EVENT_3CB
-	const EVENT_3CC
-	const EVENT_3CD
-	const EVENT_3CE
-	const EVENT_3CF
-	const EVENT_3D0
-	const EVENT_3D1
-	const EVENT_3D2
-	const EVENT_3D3
-	const EVENT_3D4
-	const EVENT_3D5
-	const EVENT_3D6
-	const EVENT_3D7
+
+; Route 2 events
+	const_next $3D8
 	const EVENT_GOT_HM05
-	const EVENT_3D9
-	const EVENT_3DA
-	const EVENT_3DB
-	const EVENT_3DC
-	const EVENT_3DD
-	const EVENT_3DE
-	const EVENT_3DF
-	const EVENT_3E0
-	const EVENT_3E1
+
+; Route 3 events
+	const_next $3E0
+	const_skip 2
 	const EVENT_BEAT_ROUTE_3_TRAINER_0
 	const EVENT_BEAT_ROUTE_3_TRAINER_1
 	const EVENT_BEAT_ROUTE_3_TRAINER_2
@@ -1001,45 +235,17 @@
 	const EVENT_BEAT_ROUTE_3_TRAINER_5
 	const EVENT_BEAT_ROUTE_3_TRAINER_6
 	const EVENT_BEAT_ROUTE_3_TRAINER_7
-	const EVENT_3EA
-	const EVENT_3EB
-	const EVENT_3EC
-	const EVENT_3ED
-	const EVENT_3EE
-	const EVENT_3EF
-	const EVENT_3F0
-	const EVENT_3F1
+
+; Route 4 events
+	const_next $3F0
+	const_skip 2
 	const EVENT_BEAT_ROUTE_4_TRAINER_0
-	const EVENT_3F3
-	const EVENT_3F4
-	const EVENT_3F5
-	const EVENT_3F6
-	const EVENT_3F7
-	const EVENT_3F8
-	const EVENT_3F9
-	const EVENT_3FA
-	const EVENT_3FB
-	const EVENT_3FC
-	const EVENT_3FD
-	const EVENT_3FE
+	const_skip 12
 	const EVENT_BOUGHT_MAGIKARP
-	const EVENT_400
-	const EVENT_401
-	const EVENT_402
-	const EVENT_403
-	const EVENT_404
-	const EVENT_405
-	const EVENT_406
-	const EVENT_407
-	const EVENT_408
-	const EVENT_409
-	const EVENT_40A
-	const EVENT_40B
-	const EVENT_40C
-	const EVENT_40D
-	const EVENT_40E
-	const EVENT_40F
-	const EVENT_410
+
+; Route 6 events
+	const_next $410
+	const_skip
 	const EVENT_BEAT_ROUTE_6_TRAINER_0
 	const EVENT_BEAT_ROUTE_6_TRAINER_1
 	const EVENT_BEAT_ROUTE_6_TRAINER_2
@@ -1046,32 +252,10 @@
 	const EVENT_BEAT_ROUTE_6_TRAINER_3
 	const EVENT_BEAT_ROUTE_6_TRAINER_4
 	const EVENT_BEAT_ROUTE_6_TRAINER_5
-	const EVENT_417
-	const EVENT_418
-	const EVENT_419
-	const EVENT_41A
-	const EVENT_41B
-	const EVENT_41C
-	const EVENT_41D
-	const EVENT_41E
-	const EVENT_41F
-	const EVENT_420
-	const EVENT_421
-	const EVENT_422
-	const EVENT_423
-	const EVENT_424
-	const EVENT_425
-	const EVENT_426
-	const EVENT_427
-	const EVENT_428
-	const EVENT_429
-	const EVENT_42A
-	const EVENT_42B
-	const EVENT_42C
-	const EVENT_42D
-	const EVENT_42E
-	const EVENT_42F
-	const EVENT_430
+
+; Route 8 events
+	const_next $430
+	const_skip
 	const EVENT_BEAT_ROUTE_8_TRAINER_0
 	const EVENT_BEAT_ROUTE_8_TRAINER_1
 	const EVENT_BEAT_ROUTE_8_TRAINER_2
@@ -1081,13 +265,10 @@
 	const EVENT_BEAT_ROUTE_8_TRAINER_6
 	const EVENT_BEAT_ROUTE_8_TRAINER_7
 	const EVENT_BEAT_ROUTE_8_TRAINER_8
-	const EVENT_43A
-	const EVENT_43B
-	const EVENT_43C
-	const EVENT_43D
-	const EVENT_43E
-	const EVENT_43F
-	const EVENT_440
+
+; Route 9 events
+	const_next $440
+	const_skip
 	const EVENT_BEAT_ROUTE_9_TRAINER_0
 	const EVENT_BEAT_ROUTE_9_TRAINER_1
 	const EVENT_BEAT_ROUTE_9_TRAINER_2
@@ -1097,13 +278,10 @@
 	const EVENT_BEAT_ROUTE_9_TRAINER_6
 	const EVENT_BEAT_ROUTE_9_TRAINER_7
 	const EVENT_BEAT_ROUTE_9_TRAINER_8
-	const EVENT_44A
-	const EVENT_44B
-	const EVENT_44C
-	const EVENT_44D
-	const EVENT_44E
-	const EVENT_44F
-	const EVENT_450
+
+; Route 10 events
+	const_next $450
+	const_skip
 	const EVENT_BEAT_ROUTE_10_TRAINER_0
 	const EVENT_BEAT_ROUTE_10_TRAINER_1
 	const EVENT_BEAT_ROUTE_10_TRAINER_2
@@ -1110,8 +288,7 @@
 	const EVENT_BEAT_ROUTE_10_TRAINER_3
 	const EVENT_BEAT_ROUTE_10_TRAINER_4
 	const EVENT_BEAT_ROUTE_10_TRAINER_5
-	const EVENT_457
-	const EVENT_458
+	const_skip 2
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2
@@ -1119,7 +296,7 @@
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5
 	const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6
-	const EVENT_460
+	const_skip
 	const EVENT_BEAT_POWER_PLANT_VOLTORB_0
 	const EVENT_BEAT_POWER_PLANT_VOLTORB_1
 	const EVENT_BEAT_POWER_PLANT_VOLTORB_2
@@ -1129,13 +306,10 @@
 	const EVENT_BEAT_POWER_PLANT_VOLTORB_6
 	const EVENT_BEAT_POWER_PLANT_VOLTORB_7
 	const EVENT_BEAT_ZAPDOS
-	const EVENT_46A
-	const EVENT_46B
-	const EVENT_46C
-	const EVENT_46D
-	const EVENT_46E
-	const EVENT_46F
-	const EVENT_470
+
+; Route 11 events
+	const_next $470
+	const_skip
 	const EVENT_BEAT_ROUTE_11_TRAINER_0
 	const EVENT_BEAT_ROUTE_11_TRAINER_1
 	const EVENT_BEAT_ROUTE_11_TRAINER_2
@@ -1146,13 +320,13 @@
 	const EVENT_BEAT_ROUTE_11_TRAINER_7
 	const EVENT_BEAT_ROUTE_11_TRAINER_8
 	const EVENT_BEAT_ROUTE_11_TRAINER_9
-	const EVENT_47B
-	const EVENT_47C
-	const EVENT_47D
-	const EVENT_47E
+	const_skip 4
 	const EVENT_GOT_ITEMFINDER
+
+; Route 12 events
+	const_next $480
 	const EVENT_GOT_TM39
-	const EVENT_481
+	const_skip
 	const EVENT_BEAT_ROUTE_12_TRAINER_0
 	const EVENT_BEAT_ROUTE_12_TRAINER_1
 	const EVENT_BEAT_ROUTE_12_TRAINER_2
@@ -1160,14 +334,13 @@
 	const EVENT_BEAT_ROUTE_12_TRAINER_4
 	const EVENT_BEAT_ROUTE_12_TRAINER_5
 	const EVENT_BEAT_ROUTE_12_TRAINER_6
-	const EVENT_489
-	const EVENT_48A
-	const EVENT_48B
-	const EVENT_48C
-	const EVENT_48D
+	const_skip 5
 	const EVENT_FIGHT_ROUTE12_SNORLAX
 	const EVENT_BEAT_ROUTE12_SNORLAX
-	const EVENT_490
+
+; Route 13 events
+	const_next $490
+	const_skip
 	const EVENT_BEAT_ROUTE_13_TRAINER_0
 	const EVENT_BEAT_ROUTE_13_TRAINER_1
 	const EVENT_BEAT_ROUTE_13_TRAINER_2
@@ -1178,12 +351,10 @@
 	const EVENT_BEAT_ROUTE_13_TRAINER_7
 	const EVENT_BEAT_ROUTE_13_TRAINER_8
 	const EVENT_BEAT_ROUTE_13_TRAINER_9
-	const EVENT_49B
-	const EVENT_49C
-	const EVENT_49D
-	const EVENT_49E
-	const EVENT_49F
-	const EVENT_4A0
+
+; Route 14 events
+	const_next $4A0
+	const_skip
 	const EVENT_BEAT_ROUTE_14_TRAINER_0
 	const EVENT_BEAT_ROUTE_14_TRAINER_1
 	const EVENT_BEAT_ROUTE_14_TRAINER_2
@@ -1194,11 +365,9 @@
 	const EVENT_BEAT_ROUTE_14_TRAINER_7
 	const EVENT_BEAT_ROUTE_14_TRAINER_8
 	const EVENT_BEAT_ROUTE_14_TRAINER_9
-	const EVENT_4AB
-	const EVENT_4AC
-	const EVENT_4AD
-	const EVENT_4AE
-	const EVENT_4AF
+
+; Route 15 events
+	const_next $4B0
 	const EVENT_GOT_EXP_ALL
 	const EVENT_BEAT_ROUTE_15_TRAINER_0
 	const EVENT_BEAT_ROUTE_15_TRAINER_1
@@ -1210,12 +379,10 @@
 	const EVENT_BEAT_ROUTE_15_TRAINER_7
 	const EVENT_BEAT_ROUTE_15_TRAINER_8
 	const EVENT_BEAT_ROUTE_15_TRAINER_9
-	const EVENT_4BB
-	const EVENT_4BC
-	const EVENT_4BD
-	const EVENT_4BE
-	const EVENT_4BF
-	const EVENT_4C0
+
+; Route 16 events
+	const_next $4C0
+	const_skip
 	const EVENT_BEAT_ROUTE_16_TRAINER_0
 	const EVENT_BEAT_ROUTE_16_TRAINER_1
 	const EVENT_BEAT_ROUTE_16_TRAINER_2
@@ -1222,16 +389,16 @@
 	const EVENT_BEAT_ROUTE_16_TRAINER_3
 	const EVENT_BEAT_ROUTE_16_TRAINER_4
 	const EVENT_BEAT_ROUTE_16_TRAINER_5
-	const EVENT_4C7
+	const_skip
 	const EVENT_FIGHT_ROUTE16_SNORLAX
 	const EVENT_BEAT_ROUTE16_SNORLAX
-	const EVENT_4CA
-	const EVENT_4CB
-	const EVENT_4CC
-	const EVENT_4CD
+	const_skip 4
 	const EVENT_GOT_HM02
 	const EVENT_RESCUED_MR_FUJI
-	const EVENT_4D0
+
+; Route 17 events
+	const_next $4D0
+	const_skip
 	const EVENT_BEAT_ROUTE_17_TRAINER_0
 	const EVENT_BEAT_ROUTE_17_TRAINER_1
 	const EVENT_BEAT_ROUTE_17_TRAINER_2
@@ -1242,28 +409,17 @@
 	const EVENT_BEAT_ROUTE_17_TRAINER_7
 	const EVENT_BEAT_ROUTE_17_TRAINER_8
 	const EVENT_BEAT_ROUTE_17_TRAINER_9
-	const EVENT_4DB
-	const EVENT_4DC
-	const EVENT_4DD
-	const EVENT_4DE
-	const EVENT_4DF
-	const EVENT_4E0
+
+; Route 18 events
+	const_next $4E0
+	const_skip
 	const EVENT_BEAT_ROUTE_18_TRAINER_0
 	const EVENT_BEAT_ROUTE_18_TRAINER_1
 	const EVENT_BEAT_ROUTE_18_TRAINER_2
-	const EVENT_4E4
-	const EVENT_4E5
-	const EVENT_4E6
-	const EVENT_4E7
-	const EVENT_4E8
-	const EVENT_4E9
-	const EVENT_4EA
-	const EVENT_4EB
-	const EVENT_4EC
-	const EVENT_4ED
-	const EVENT_4EE
-	const EVENT_4EF
-	const EVENT_4F0
+
+; Route 19 events
+	const_next $4F0
+	const_skip
 	const EVENT_BEAT_ROUTE_19_TRAINER_0
 	const EVENT_BEAT_ROUTE_19_TRAINER_1
 	const EVENT_BEAT_ROUTE_19_TRAINER_2
@@ -1274,11 +430,9 @@
 	const EVENT_BEAT_ROUTE_19_TRAINER_7
 	const EVENT_BEAT_ROUTE_19_TRAINER_8
 	const EVENT_BEAT_ROUTE_19_TRAINER_9
-	const EVENT_4FB
-	const EVENT_4FC
-	const EVENT_4FD
-	const EVENT_4FE
-	const EVENT_4FF
+
+; Route 20 events
+	const_next $500
 	const EVENT_IN_SEAFOAM_ISLANDS
 	const EVENT_BEAT_ROUTE_20_TRAINER_0
 	const EVENT_BEAT_ROUTE_20_TRAINER_1
@@ -1290,12 +444,13 @@
 	const EVENT_BEAT_ROUTE_20_TRAINER_7
 	const EVENT_BEAT_ROUTE_20_TRAINER_8
 	const EVENT_BEAT_ROUTE_20_TRAINER_9
-	const EVENT_50B
-	const EVENT_50C
-	const EVENT_50D
+	const_skip 3
 	const EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
 	const EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE
-	const EVENT_510
+
+; Route 21 events
+	const_next $510
+	const_skip
 	const EVENT_BEAT_ROUTE_21_TRAINER_0
 	const EVENT_BEAT_ROUTE_21_TRAINER_1
 	const EVENT_BEAT_ROUTE_21_TRAINER_2
@@ -1305,28 +460,18 @@
 	const EVENT_BEAT_ROUTE_21_TRAINER_6
 	const EVENT_BEAT_ROUTE_21_TRAINER_7
 	const EVENT_BEAT_ROUTE_21_TRAINER_8
-	const EVENT_51A
-	const EVENT_51B
-	const EVENT_51C
-	const EVENT_51D
-	const EVENT_51E
-	const EVENT_51F
+
+; Route 22 events
+	const_next $520
 	const EVENT_1ST_ROUTE22_RIVAL_BATTLE
 	const EVENT_2ND_ROUTE22_RIVAL_BATTLE
-	const EVENT_522
-	const EVENT_523
-	const EVENT_524
+	const_skip 3
 	const EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
 	const EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
 	const EVENT_ROUTE22_RIVAL_WANTS_BATTLE
-	const EVENT_528
-	const EVENT_529
-	const EVENT_52A
-	const EVENT_52B
-	const EVENT_52C
-	const EVENT_52D
-	const EVENT_52E
-	const EVENT_52F
+
+; Route 23 events
+	const_next $530
 	const EVENT_PASSED_CASCADEBADGE_CHECK
 	const EVENT_PASSED_THUNDERBADGE_CHECK
 	const EVENT_PASSED_RAINBOWBADGE_CHECK
@@ -1334,7 +479,7 @@
 	const EVENT_PASSED_MARSHBADGE_CHECK
 	const EVENT_PASSED_VOLCANOBADGE_CHECK
 	const EVENT_PASSED_EARTHBADGE_CHECK
-	const EVENT_537
+	const_skip
 	const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
 	const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0
 	const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1
@@ -1343,6 +488,9 @@
 	const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4
 	const EVENT_BEAT_MOLTRES
 	const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
+
+; Route 24 events
+	const_next $540
 	const EVENT_GOT_NUGGET
 	const EVENT_BEAT_ROUTE24_ROCKET
 	const EVENT_BEAT_ROUTE_24_TRAINER_0
@@ -1351,14 +499,11 @@
 	const EVENT_BEAT_ROUTE_24_TRAINER_3
 	const EVENT_BEAT_ROUTE_24_TRAINER_4
 	const EVENT_BEAT_ROUTE_24_TRAINER_5
-	const EVENT_548
+	const_skip
 	const EVENT_NUGGET_REWARD_AVAILABLE
-	const EVENT_54A
-	const EVENT_54B
-	const EVENT_54C
-	const EVENT_54D
-	const EVENT_54E
-	const EVENT_54F
+
+; Route 25 events
+	const_next $550
 	const EVENT_MET_BILL
 	const EVENT_BEAT_ROUTE_25_TRAINER_0
 	const EVENT_BEAT_ROUTE_25_TRAINER_1
@@ -1369,29 +514,23 @@
 	const EVENT_BEAT_ROUTE_25_TRAINER_6
 	const EVENT_BEAT_ROUTE_25_TRAINER_7
 	const EVENT_BEAT_ROUTE_25_TRAINER_8
-	const EVENT_55A
+	const_skip
 	const EVENT_USED_CELL_SEPARATOR_ON_BILL
 	const EVENT_GOT_SS_TICKET
 	const EVENT_MET_BILL_2
 	const EVENT_BILL_SAID_USE_CELL_SEPARATOR
 	const EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
-	const EVENT_560
-	const EVENT_561
+
+; Viridian Forest events
+	const_next $560
+	const_skip 2
 	const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0
 	const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1
 	const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2
-	const EVENT_565
-	const EVENT_566
-	const EVENT_567
-	const EVENT_568
-	const EVENT_569
-	const EVENT_56A
-	const EVENT_56B
-	const EVENT_56C
-	const EVENT_56D
-	const EVENT_56E
-	const EVENT_56F
-	const EVENT_570
+
+; Mt. Moon events
+	const_next $570
+	const_skip
 	const EVENT_BEAT_MT_MOON_1_TRAINER_0
 	const EVENT_BEAT_MT_MOON_1_TRAINER_1
 	const EVENT_BEAT_MT_MOON_1_TRAINER_2
@@ -1399,7 +538,7 @@
 	const EVENT_BEAT_MT_MOON_1_TRAINER_4
 	const EVENT_BEAT_MT_MOON_1_TRAINER_5
 	const EVENT_BEAT_MT_MOON_1_TRAINER_6
-	const EVENT_578
+	const_skip
 	const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
 	const EVENT_BEAT_MT_MOON_3_TRAINER_0
 	const EVENT_BEAT_MT_MOON_3_TRAINER_1
@@ -1407,102 +546,13 @@
 	const EVENT_BEAT_MT_MOON_3_TRAINER_3
 	const EVENT_GOT_DOME_FOSSIL
 	const EVENT_GOT_HELIX_FOSSIL
-	const EVENT_580
-	const EVENT_581
-	const EVENT_582
-	const EVENT_583
-	const EVENT_584
-	const EVENT_585
-	const EVENT_586
-	const EVENT_587
-	const EVENT_588
-	const EVENT_589
-	const EVENT_58A
-	const EVENT_58B
-	const EVENT_58C
-	const EVENT_58D
-	const EVENT_58E
-	const EVENT_58F
-	const EVENT_590
-	const EVENT_591
-	const EVENT_592
-	const EVENT_593
-	const EVENT_594
-	const EVENT_595
-	const EVENT_596
-	const EVENT_597
-	const EVENT_598
-	const EVENT_599
-	const EVENT_59A
-	const EVENT_59B
-	const EVENT_59C
-	const EVENT_59D
-	const EVENT_59E
-	const EVENT_59F
-	const EVENT_5A0
-	const EVENT_5A1
-	const EVENT_5A2
-	const EVENT_5A3
-	const EVENT_5A4
-	const EVENT_5A5
-	const EVENT_5A6
-	const EVENT_5A7
-	const EVENT_5A8
-	const EVENT_5A9
-	const EVENT_5AA
-	const EVENT_5AB
-	const EVENT_5AC
-	const EVENT_5AD
-	const EVENT_5AE
-	const EVENT_5AF
-	const EVENT_5B0
-	const EVENT_5B1
-	const EVENT_5B2
-	const EVENT_5B3
-	const EVENT_5B4
-	const EVENT_5B5
-	const EVENT_5B6
-	const EVENT_5B7
-	const EVENT_5B8
-	const EVENT_5B9
-	const EVENT_5BA
-	const EVENT_5BB
-	const EVENT_5BC
-	const EVENT_5BD
-	const EVENT_5BE
-	const EVENT_5BF
-	const EVENT_5C0
-	const EVENT_5C1
-	const EVENT_5C2
-	const EVENT_5C3
+
+; S.S. Anne events
+	const_next $5C0
+	const_skip 4
 	const EVENT_BEAT_SS_ANNE_5_TRAINER_0
 	const EVENT_BEAT_SS_ANNE_5_TRAINER_1
-	const EVENT_5C6
-	const EVENT_5C7
-	const EVENT_5C8
-	const EVENT_5C9
-	const EVENT_5CA
-	const EVENT_5CB
-	const EVENT_5CC
-	const EVENT_5CD
-	const EVENT_5CE
-	const EVENT_5CF
-	const EVENT_5D0
-	const EVENT_5D1
-	const EVENT_5D2
-	const EVENT_5D3
-	const EVENT_5D4
-	const EVENT_5D5
-	const EVENT_5D6
-	const EVENT_5D7
-	const EVENT_5D8
-	const EVENT_5D9
-	const EVENT_5DA
-	const EVENT_5DB
-	const EVENT_5DC
-	const EVENT_5DD
-	const EVENT_5DE
-	const EVENT_5DF
+	const_skip 26
 	const EVENT_GOT_HM01
 	const EVENT_RUBBED_CAPTAINS_BACK
 	const EVENT_SS_ANNE_LEFT
@@ -1509,49 +559,17 @@
 	const EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
 	const EVENT_STARTED_WALKING_OUT_OF_DOCK
 	const EVENT_WALKED_OUT_OF_DOCK
-	const EVENT_5E6
-	const EVENT_5E7
-	const EVENT_5E8
-	const EVENT_5E9
-	const EVENT_5EA
-	const EVENT_5EB
-	const EVENT_5EC
-	const EVENT_5ED
-	const EVENT_5EE
-	const EVENT_5EF
-	const EVENT_5F0
+	const_skip 11
 	const EVENT_BEAT_SS_ANNE_8_TRAINER_0
 	const EVENT_BEAT_SS_ANNE_8_TRAINER_1
 	const EVENT_BEAT_SS_ANNE_8_TRAINER_2
 	const EVENT_BEAT_SS_ANNE_8_TRAINER_3
-	const EVENT_5F5
-	const EVENT_5F6
-	const EVENT_5F7
-	const EVENT_5F8
-	const EVENT_5F9
-	const EVENT_5FA
-	const EVENT_5FB
-	const EVENT_5FC
-	const EVENT_5FD
-	const EVENT_5FE
-	const EVENT_5FF
-	const EVENT_600
+	const_skip 12
 	const EVENT_BEAT_SS_ANNE_9_TRAINER_0
 	const EVENT_BEAT_SS_ANNE_9_TRAINER_1
 	const EVENT_BEAT_SS_ANNE_9_TRAINER_2
 	const EVENT_BEAT_SS_ANNE_9_TRAINER_3
-	const EVENT_605
-	const EVENT_606
-	const EVENT_607
-	const EVENT_608
-	const EVENT_609
-	const EVENT_60A
-	const EVENT_60B
-	const EVENT_60C
-	const EVENT_60D
-	const EVENT_60E
-	const EVENT_60F
-	const EVENT_610
+	const_skip 12
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_0
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_1
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_2
@@ -1558,145 +576,35 @@
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_3
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_4
 	const EVENT_BEAT_SS_ANNE_10_TRAINER_5
-	const EVENT_617
-	const EVENT_618
-	const EVENT_619
-	const EVENT_61A
-	const EVENT_61B
-	const EVENT_61C
-	const EVENT_61D
-	const EVENT_61E
-	const EVENT_61F
-	const EVENT_620
-	const EVENT_621
-	const EVENT_622
-	const EVENT_623
-	const EVENT_624
-	const EVENT_625
-	const EVENT_626
-	const EVENT_627
-	const EVENT_628
-	const EVENT_629
-	const EVENT_62A
-	const EVENT_62B
-	const EVENT_62C
-	const EVENT_62D
-	const EVENT_62E
-	const EVENT_62F
-	const EVENT_630
-	const EVENT_631
-	const EVENT_632
-	const EVENT_633
-	const EVENT_634
-	const EVENT_635
-	const EVENT_636
-	const EVENT_637
-	const EVENT_638
-	const EVENT_639
-	const EVENT_63A
-	const EVENT_63B
-	const EVENT_63C
-	const EVENT_63D
-	const EVENT_63E
-	const EVENT_63F
-	const EVENT_640
-	const EVENT_641
-	const EVENT_642
-	const EVENT_643
-	const EVENT_644
-	const EVENT_645
-	const EVENT_646
-	const EVENT_647
-	const EVENT_648
-	const EVENT_649
-	const EVENT_64A
-	const EVENT_64B
-	const EVENT_64C
-	const EVENT_64D
-	const EVENT_64E
-	const EVENT_64F
-	const EVENT_650
-	const EVENT_651
-	const EVENT_652
-	const EVENT_653
-	const EVENT_654
-	const EVENT_655
-	const EVENT_656
-	const EVENT_657
-	const EVENT_658
-	const EVENT_659
-	const EVENT_65A
-	const EVENT_65B
-	const EVENT_65C
-	const EVENT_65D
-	const EVENT_65E
-	const EVENT_65F
+
+; Victory Road 3F events
+	const_next $660
 	const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1
 	const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0
 	const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1
 	const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2
 	const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3
-	const EVENT_665
+	const_skip
 	const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
-	const EVENT_667
-	const EVENT_668
-	const EVENT_669
-	const EVENT_66A
-	const EVENT_66B
-	const EVENT_66C
-	const EVENT_66D
-	const EVENT_66E
-	const EVENT_66F
-	const EVENT_670
+
+; Rocket Hideout events
+	const_next $670
+	const_skip
 	const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0
 	const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1
 	const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2
 	const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3
 	const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
-	const EVENT_676
-	const EVENT_677
-	const EVENT_678
-	const EVENT_679
-	const EVENT_67A
-	const EVENT_67B
-	const EVENT_67C
-	const EVENT_67D
-	const EVENT_67E
-	const EVENT_67F
-	const EVENT_680
+	const_skip
+	const EVENT_677 ; ???
+	const_skip 7
+	const EVENT_67F ; ???
+	const_skip
 	const EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
-	const EVENT_682
-	const EVENT_683
-	const EVENT_684
-	const EVENT_685
-	const EVENT_686
-	const EVENT_687
-	const EVENT_688
-	const EVENT_689
-	const EVENT_68A
-	const EVENT_68B
-	const EVENT_68C
-	const EVENT_68D
-	const EVENT_68E
-	const EVENT_68F
-	const EVENT_690
+	const_skip 15
 	const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0
 	const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1
-	const EVENT_693
-	const EVENT_694
-	const EVENT_695
-	const EVENT_696
-	const EVENT_697
-	const EVENT_698
-	const EVENT_699
-	const EVENT_69A
-	const EVENT_69B
-	const EVENT_69C
-	const EVENT_69D
-	const EVENT_69E
-	const EVENT_69F
-	const EVENT_6A0
-	const EVENT_6A1
+	const_skip 15
 	const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
 	const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_1
 	const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
@@ -1703,783 +611,141 @@
 	const EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED
 	const EVENT_ROCKET_DROPPED_LIFT_KEY
 	const EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
-	const EVENT_6A8
-	const EVENT_6A9
-	const EVENT_6AA
-	const EVENT_6AB
-	const EVENT_6AC
-	const EVENT_6AD
-	const EVENT_6AE
-	const EVENT_6AF
-	const EVENT_6B0
-	const EVENT_6B1
-	const EVENT_6B2
-	const EVENT_6B3
-	const EVENT_6B4
-	const EVENT_6B5
-	const EVENT_6B6
-	const EVENT_6B7
-	const EVENT_6B8
-	const EVENT_6B9
-	const EVENT_6BA
-	const EVENT_6BB
-	const EVENT_6BC
-	const EVENT_6BD
-	const EVENT_6BE
-	const EVENT_6BF
-	const EVENT_6C0
-	const EVENT_6C1
-	const EVENT_6C2
-	const EVENT_6C3
-	const EVENT_6C4
-	const EVENT_6C5
-	const EVENT_6C6
-	const EVENT_6C7
-	const EVENT_6C8
-	const EVENT_6C9
-	const EVENT_6CA
-	const EVENT_6CB
-	const EVENT_6CC
-	const EVENT_6CD
-	const EVENT_6CE
-	const EVENT_6CF
-	const EVENT_6D0
-	const EVENT_6D1
-	const EVENT_6D2
-	const EVENT_6D3
-	const EVENT_6D4
-	const EVENT_6D5
-	const EVENT_6D6
-	const EVENT_6D7
-	const EVENT_6D8
-	const EVENT_6D9
-	const EVENT_6DA
-	const EVENT_6DB
-	const EVENT_6DC
-	const EVENT_6DD
-	const EVENT_6DE
-	const EVENT_6DF
-	const EVENT_6E0
-	const EVENT_6E1
-	const EVENT_6E2
-	const EVENT_6E3
-	const EVENT_6E4
-	const EVENT_6E5
-	const EVENT_6E6
-	const EVENT_6E7
-	const EVENT_6E8
-	const EVENT_6E9
-	const EVENT_6EA
-	const EVENT_6EB
-	const EVENT_6EC
-	const EVENT_6ED
-	const EVENT_6EE
-	const EVENT_6EF
-	const EVENT_6F0
-	const EVENT_6F1
+
+; Silph Co. events
+	const_next $6F0
+	const_skip 2
 	const EVENT_BEAT_SILPH_CO_2F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_2F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_2F_TRAINER_2
 	const EVENT_BEAT_SILPH_CO_2F_TRAINER_3
-	const EVENT_6F6
-	const EVENT_6F7
-	const EVENT_6F8
-	const EVENT_6F9
-	const EVENT_6FA
-	const EVENT_6FB
-	const EVENT_6FC
+	const_skip 7
 	const EVENT_SILPH_CO_2_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_2_UNLOCKED_DOOR2
 	const EVENT_GOT_TM36
-	const EVENT_700
-	const EVENT_701
+	const_skip 2
 	const EVENT_BEAT_SILPH_CO_3F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_3F_TRAINER_1
-	const EVENT_704
-	const EVENT_705
-	const EVENT_706
-	const EVENT_707
+	const_skip 4
 	const EVENT_SILPH_CO_3_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_3_UNLOCKED_DOOR2
-	const EVENT_70A
-	const EVENT_70B
-	const EVENT_70C
-	const EVENT_70D
-	const EVENT_70E
-	const EVENT_70F
-	const EVENT_710
-	const EVENT_711
+	const_skip 8
 	const EVENT_BEAT_SILPH_CO_4F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_4F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_4F_TRAINER_2
-	const EVENT_715
-	const EVENT_716
-	const EVENT_717
+	const_skip 3
 	const EVENT_SILPH_CO_4_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_4_UNLOCKED_DOOR2
-	const EVENT_71A
-	const EVENT_71B
-	const EVENT_71C
-	const EVENT_71D
-	const EVENT_71E
-	const EVENT_71F
-	const EVENT_720
-	const EVENT_721
+	const_skip 8
 	const EVENT_BEAT_SILPH_CO_5F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_5F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_5F_TRAINER_2
 	const EVENT_BEAT_SILPH_CO_5F_TRAINER_3
-	const EVENT_726
-	const EVENT_727
+	const_skip 2
 	const EVENT_SILPH_CO_5_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_5_UNLOCKED_DOOR2
 	const EVENT_SILPH_CO_5_UNLOCKED_DOOR3
-	const EVENT_72B
-	const EVENT_72C
-	const EVENT_72D
-	const EVENT_72E
-	const EVENT_72F
-	const EVENT_730
-	const EVENT_731
-	const EVENT_732
-	const EVENT_733
-	const EVENT_734
-	const EVENT_735
+	const_skip 11
 	const EVENT_BEAT_SILPH_CO_6F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_6F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_6F_TRAINER_2
-	const EVENT_739
-	const EVENT_73A
-	const EVENT_73B
-	const EVENT_73C
-	const EVENT_73D
-	const EVENT_73E
+	const_skip 6
 	const EVENT_SILPH_CO_6_UNLOCKED_DOOR
 	const EVENT_BEAT_SILPH_CO_RIVAL
-	const EVENT_741
-	const EVENT_742
-	const EVENT_743
-	const EVENT_744
+	const_skip 4
 	const EVENT_BEAT_SILPH_CO_7F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_7F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_7F_TRAINER_2
 	const EVENT_BEAT_SILPH_CO_7F_TRAINER_3
-	const EVENT_749
-	const EVENT_74A
-	const EVENT_74B
+	const_skip 3
 	const EVENT_SILPH_CO_7_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_7_UNLOCKED_DOOR2
 	const EVENT_SILPH_CO_7_UNLOCKED_DOOR3
-	const EVENT_74F
-	const EVENT_750
-	const EVENT_751
+	const_skip 3
 	const EVENT_BEAT_SILPH_CO_8F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_8F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_8F_TRAINER_2
-	const EVENT_755
-	const EVENT_756
-	const EVENT_757
+	const_skip 3
 	const EVENT_SILPH_CO_8_UNLOCKED_DOOR
-	const EVENT_759
-	const EVENT_75A
-	const EVENT_75B
-	const EVENT_75C
-	const EVENT_75D
-	const EVENT_75E
-	const EVENT_75F
-	const EVENT_760
-	const EVENT_761
+	const_skip 9
 	const EVENT_BEAT_SILPH_CO_9F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_9F_TRAINER_1
 	const EVENT_BEAT_SILPH_CO_9F_TRAINER_2
-	const EVENT_765
-	const EVENT_766
-	const EVENT_767
+	const_skip 3
 	const EVENT_SILPH_CO_9_UNLOCKED_DOOR1
 	const EVENT_SILPH_CO_9_UNLOCKED_DOOR2
 	const EVENT_SILPH_CO_9_UNLOCKED_DOOR3
 	const EVENT_SILPH_CO_9_UNLOCKED_DOOR4
-	const EVENT_76C
-	const EVENT_76D
-	const EVENT_76E
-	const EVENT_76F
-	const EVENT_770
+	const_skip 5
 	const EVENT_BEAT_SILPH_CO_10F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_10F_TRAINER_1
-	const EVENT_773
-	const EVENT_774
-	const EVENT_775
-	const EVENT_776
-	const EVENT_777
+	const_skip 5
 	const EVENT_SILPH_CO_10_UNLOCKED_DOOR
-	const EVENT_779
-	const EVENT_77A
-	const EVENT_77B
-	const EVENT_77C
-	const EVENT_77D
-	const EVENT_77E
-	const EVENT_77F
-	const EVENT_780
-	const EVENT_781
-	const EVENT_782
-	const EVENT_783
+	const_skip 11
 	const EVENT_BEAT_SILPH_CO_11F_TRAINER_0
 	const EVENT_BEAT_SILPH_CO_11F_TRAINER_1
-	const EVENT_786
-	const EVENT_787
+	const_skip 2
 	const EVENT_SILPH_CO_11_UNLOCKED_DOOR
-	const EVENT_789
-	const EVENT_78A
-	const EVENT_78B
-	const EVENT_78C
+	const_skip 4
 	const EVENT_GOT_MASTER_BALL
-	const EVENT_78E
+	const_skip
 	const EVENT_BEAT_SILPH_CO_GIOVANNI
-	const EVENT_790
-	const EVENT_791
-	const EVENT_792
-	const EVENT_793
-	const EVENT_794
-	const EVENT_795
-	const EVENT_796
-	const EVENT_797
-	const EVENT_798
-	const EVENT_799
-	const EVENT_79A
-	const EVENT_79B
-	const EVENT_79C
-	const EVENT_79D
-	const EVENT_79E
-	const EVENT_79F
-	const EVENT_7A0
-	const EVENT_7A1
-	const EVENT_7A2
-	const EVENT_7A3
-	const EVENT_7A4
-	const EVENT_7A5
-	const EVENT_7A6
-	const EVENT_7A7
-	const EVENT_7A8
-	const EVENT_7A9
-	const EVENT_7AA
-	const EVENT_7AB
-	const EVENT_7AC
-	const EVENT_7AD
-	const EVENT_7AE
-	const EVENT_7AF
-	const EVENT_7B0
-	const EVENT_7B1
-	const EVENT_7B2
-	const EVENT_7B3
-	const EVENT_7B4
-	const EVENT_7B5
-	const EVENT_7B6
-	const EVENT_7B7
-	const EVENT_7B8
-	const EVENT_7B9
-	const EVENT_7BA
-	const EVENT_7BB
-	const EVENT_7BC
-	const EVENT_7BD
-	const EVENT_7BE
-	const EVENT_7BF
-	const EVENT_7C0
-	const EVENT_7C1
-	const EVENT_7C2
-	const EVENT_7C3
-	const EVENT_7C4
-	const EVENT_7C5
-	const EVENT_7C6
-	const EVENT_7C7
-	const EVENT_7C8
-	const EVENT_7C9
-	const EVENT_7CA
-	const EVENT_7CB
-	const EVENT_7CC
-	const EVENT_7CD
-	const EVENT_7CE
-	const EVENT_7CF
-	const EVENT_7D0
-	const EVENT_7D1
-	const EVENT_7D2
-	const EVENT_7D3
-	const EVENT_7D4
-	const EVENT_7D5
-	const EVENT_7D6
-	const EVENT_7D7
-	const EVENT_7D8
-	const EVENT_7D9
-	const EVENT_7DA
-	const EVENT_7DB
-	const EVENT_7DC
-	const EVENT_7DD
-	const EVENT_7DE
-	const EVENT_7DF
-	const EVENT_7E0
-	const EVENT_7E1
-	const EVENT_7E2
-	const EVENT_7E3
-	const EVENT_7E4
-	const EVENT_7E5
-	const EVENT_7E6
-	const EVENT_7E7
-	const EVENT_7E8
-	const EVENT_7E9
-	const EVENT_7EA
-	const EVENT_7EB
-	const EVENT_7EC
-	const EVENT_7ED
-	const EVENT_7EE
-	const EVENT_7EF
-	const EVENT_7F0
-	const EVENT_7F1
-	const EVENT_7F2
-	const EVENT_7F3
-	const EVENT_7F4
-	const EVENT_7F5
-	const EVENT_7F6
-	const EVENT_7F7
-	const EVENT_7F8
-	const EVENT_7F9
-	const EVENT_7FA
-	const EVENT_7FB
-	const EVENT_7FC
-	const EVENT_7FD
-	const EVENT_7FE
-	const EVENT_7FF
-	const EVENT_800
+
+; Pokémon Mansion events
+	const_next $800
+	const_skip
 	const EVENT_BEAT_MANSION_2_TRAINER_0
-	const EVENT_802
-	const EVENT_803
-	const EVENT_804
-	const EVENT_805
-	const EVENT_806
-	const EVENT_807
-	const EVENT_808
-	const EVENT_809
-	const EVENT_80A
-	const EVENT_80B
-	const EVENT_80C
-	const EVENT_80D
-	const EVENT_80E
-	const EVENT_80F
-	const EVENT_810
+	const_skip 15
 	const EVENT_BEAT_MANSION_3_TRAINER_0
 	const EVENT_BEAT_MANSION_3_TRAINER_1
-	const EVENT_813
-	const EVENT_814
-	const EVENT_815
-	const EVENT_816
-	const EVENT_817
-	const EVENT_818
-	const EVENT_819
-	const EVENT_81A
-	const EVENT_81B
-	const EVENT_81C
-	const EVENT_81D
-	const EVENT_81E
-	const EVENT_81F
-	const EVENT_820
+	const_skip 14
 	const EVENT_BEAT_MANSION_4_TRAINER_0
 	const EVENT_BEAT_MANSION_4_TRAINER_1
-	const EVENT_823
-	const EVENT_824
-	const EVENT_825
-	const EVENT_826
-	const EVENT_827
-	const EVENT_828
-	const EVENT_829
-	const EVENT_82A
-	const EVENT_82B
-	const EVENT_82C
-	const EVENT_82D
-	const EVENT_82E
-	const EVENT_82F
-	const EVENT_830
-	const EVENT_831
-	const EVENT_832
-	const EVENT_833
-	const EVENT_834
-	const EVENT_835
-	const EVENT_836
-	const EVENT_837
-	const EVENT_838
-	const EVENT_839
-	const EVENT_83A
-	const EVENT_83B
-	const EVENT_83C
-	const EVENT_83D
-	const EVENT_83E
-	const EVENT_83F
-	const EVENT_840
-	const EVENT_841
-	const EVENT_842
-	const EVENT_843
-	const EVENT_844
-	const EVENT_845
-	const EVENT_846
-	const EVENT_847
-	const EVENT_848
-	const EVENT_849
-	const EVENT_84A
-	const EVENT_84B
-	const EVENT_84C
-	const EVENT_84D
-	const EVENT_84E
-	const EVENT_84F
-	const EVENT_850
-	const EVENT_851
-	const EVENT_852
-	const EVENT_853
-	const EVENT_854
-	const EVENT_855
-	const EVENT_856
-	const EVENT_857
-	const EVENT_858
-	const EVENT_859
-	const EVENT_85A
-	const EVENT_85B
-	const EVENT_85C
-	const EVENT_85D
-	const EVENT_85E
-	const EVENT_85F
-	const EVENT_860
-	const EVENT_861
-	const EVENT_862
-	const EVENT_863
-	const EVENT_864
-	const EVENT_865
-	const EVENT_866
-	const EVENT_867
-	const EVENT_868
-	const EVENT_869
-	const EVENT_86A
-	const EVENT_86B
-	const EVENT_86C
-	const EVENT_86D
-	const EVENT_86E
-	const EVENT_86F
-	const EVENT_870
-	const EVENT_871
-	const EVENT_872
-	const EVENT_873
-	const EVENT_874
-	const EVENT_875
-	const EVENT_876
-	const EVENT_877
-	const EVENT_878
-	const EVENT_879
-	const EVENT_87A
-	const EVENT_87B
-	const EVENT_87C
-	const EVENT_87D
-	const EVENT_87E
-	const EVENT_87F
+
+; Safari Zone events
+	const_next $880
 	const EVENT_GOT_HM03
-	const EVENT_881
-	const EVENT_882
-	const EVENT_883
-	const EVENT_884
-	const EVENT_885
-	const EVENT_886
-	const EVENT_887
-	const EVENT_888
-	const EVENT_889
-	const EVENT_88A
-	const EVENT_88B
-	const EVENT_88C
-	const EVENT_88D
-	const EVENT_88E
-	const EVENT_88F
-	const EVENT_890
-	const EVENT_891
-	const EVENT_892
-	const EVENT_893
-	const EVENT_894
-	const EVENT_895
-	const EVENT_896
-	const EVENT_897
-	const EVENT_898
-	const EVENT_899
-	const EVENT_89A
-	const EVENT_89B
-	const EVENT_89C
-	const EVENT_89D
-	const EVENT_89E
-	const EVENT_89F
-	const EVENT_8A0
-	const EVENT_8A1
-	const EVENT_8A2
-	const EVENT_8A3
-	const EVENT_8A4
-	const EVENT_8A5
-	const EVENT_8A6
-	const EVENT_8A7
-	const EVENT_8A8
-	const EVENT_8A9
-	const EVENT_8AA
-	const EVENT_8AB
-	const EVENT_8AC
-	const EVENT_8AD
-	const EVENT_8AE
-	const EVENT_8AF
-	const EVENT_8B0
-	const EVENT_8B1
-	const EVENT_8B2
-	const EVENT_8B3
-	const EVENT_8B4
-	const EVENT_8B5
-	const EVENT_8B6
-	const EVENT_8B7
-	const EVENT_8B8
-	const EVENT_8B9
-	const EVENT_8BA
-	const EVENT_8BB
-	const EVENT_8BC
-	const EVENT_8BD
-	const EVENT_8BE
-	const EVENT_8BF
-	const EVENT_8C0
+
+; Cerulean Cave events
+	const_next $8C0
+	const_skip
 	const EVENT_BEAT_MEWTWO
-	const EVENT_8C2
-	const EVENT_8C3
-	const EVENT_8C4
-	const EVENT_8C5
-	const EVENT_8C6
-	const EVENT_8C7
-	const EVENT_8C8
-	const EVENT_8C9
-	const EVENT_8CA
-	const EVENT_8CB
-	const EVENT_8CC
-	const EVENT_8CD
-	const EVENT_8CE
-	const EVENT_8CF
-	const EVENT_8D0
-	const EVENT_8D1
-	const EVENT_8D2
-	const EVENT_8D3
-	const EVENT_8D4
-	const EVENT_8D5
-	const EVENT_8D6
-	const EVENT_8D7
-	const EVENT_8D8
-	const EVENT_8D9
-	const EVENT_8DA
-	const EVENT_8DB
-	const EVENT_8DC
-	const EVENT_8DD
-	const EVENT_8DE
-	const EVENT_8DF
+
+; Indigo Plateau events
+	const_next $8E0
 	const ELITE4_EVENTS_START
 	const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
-	const EVENT_8E2
-	const EVENT_8E3
-	const EVENT_8E4
-	const EVENT_8E5
+	const_skip 4
 	const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
-	const EVENT_8E7
-	const EVENT_8E8
+	const_skip 2
 	const EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
-	const EVENT_8EA
-	const EVENT_8EB
-	const EVENT_8EC
-	const EVENT_8ED
+	const_skip 4
 	const EVENT_AUTOWALKED_INTO_BRUNOS_ROOM
-	const EVENT_8EF
-	const EVENT_8F0
+	const_skip 2
 	const EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
-	const EVENT_8F2
-	const EVENT_8F3
-	const EVENT_8F4
-	const EVENT_8F5
+	const_skip 4
 	const EVENT_AUTOWALKED_INTO_AGATHAS_ROOM
-	const EVENT_8F7
-	const EVENT_8F8
+	const_skip 2
 	const EVENT_BEAT_LANCES_ROOM_TRAINER_0
-	const EVENT_8FA
-	const EVENT_8FB
-	const EVENT_8FC
-	const EVENT_8FD
+	const_skip 4
 	const EVENT_BEAT_LANCE
 	const EVENT_LANCES_ROOM_LOCK_DOOR
-	const EVENT_900
+	const_skip
 	const EVENT_BEAT_CHAMPION_RIVAL
-	const EVENT_902
-	const EVENT_903
-	const EVENT_904
-	const EVENT_905
-	const EVENT_906
+	const_skip 5
 	const ELITE4_CHAMPION_EVENTS_END
-	const EVENT_908
-	const EVENT_909
-	const EVENT_90A
-	const EVENT_90B
-	const EVENT_90C
-	const EVENT_90D
-	const EVENT_90E
-	const EVENT_90F
-	const EVENT_910
+
+; Victory Road 1F events
+	const_next $910
+	const_skip
 	const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0
 	const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1
-	const EVENT_913
-	const EVENT_914
-	const EVENT_915
-	const EVENT_916
+	const_skip 4
 	const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
-	const EVENT_918
-	const EVENT_919
-	const EVENT_91A
-	const EVENT_91B
-	const EVENT_91C
-	const EVENT_91D
-	const EVENT_91E
-	const EVENT_91F
-	const EVENT_920
-	const EVENT_921
-	const EVENT_922
-	const EVENT_923
-	const EVENT_924
-	const EVENT_925
-	const EVENT_926
-	const EVENT_927
-	const EVENT_928
-	const EVENT_929
-	const EVENT_92A
-	const EVENT_92B
-	const EVENT_92C
-	const EVENT_92D
-	const EVENT_92E
-	const EVENT_92F
-	const EVENT_930
-	const EVENT_931
-	const EVENT_932
-	const EVENT_933
-	const EVENT_934
-	const EVENT_935
-	const EVENT_936
-	const EVENT_937
-	const EVENT_938
-	const EVENT_939
-	const EVENT_93A
-	const EVENT_93B
-	const EVENT_93C
-	const EVENT_93D
-	const EVENT_93E
-	const EVENT_93F
-	const EVENT_940
-	const EVENT_941
-	const EVENT_942
-	const EVENT_943
-	const EVENT_944
-	const EVENT_945
-	const EVENT_946
-	const EVENT_947
-	const EVENT_948
-	const EVENT_949
-	const EVENT_94A
-	const EVENT_94B
-	const EVENT_94C
-	const EVENT_94D
-	const EVENT_94E
-	const EVENT_94F
-	const EVENT_950
-	const EVENT_951
-	const EVENT_952
-	const EVENT_953
-	const EVENT_954
-	const EVENT_955
-	const EVENT_956
-	const EVENT_957
-	const EVENT_958
-	const EVENT_959
-	const EVENT_95A
-	const EVENT_95B
-	const EVENT_95C
-	const EVENT_95D
-	const EVENT_95E
-	const EVENT_95F
-	const EVENT_960
-	const EVENT_961
-	const EVENT_962
-	const EVENT_963
-	const EVENT_964
-	const EVENT_965
-	const EVENT_966
-	const EVENT_967
-	const EVENT_968
-	const EVENT_969
-	const EVENT_96A
-	const EVENT_96B
-	const EVENT_96C
-	const EVENT_96D
-	const EVENT_96E
-	const EVENT_96F
-	const EVENT_970
-	const EVENT_971
-	const EVENT_972
-	const EVENT_973
-	const EVENT_974
-	const EVENT_975
-	const EVENT_976
-	const EVENT_977
-	const EVENT_978
-	const EVENT_979
-	const EVENT_97A
-	const EVENT_97B
-	const EVENT_97C
-	const EVENT_97D
-	const EVENT_97E
-	const EVENT_97F
-	const EVENT_980
-	const EVENT_981
-	const EVENT_982
-	const EVENT_983
-	const EVENT_984
-	const EVENT_985
-	const EVENT_986
-	const EVENT_987
-	const EVENT_988
-	const EVENT_989
-	const EVENT_98A
-	const EVENT_98B
-	const EVENT_98C
-	const EVENT_98D
-	const EVENT_98E
-	const EVENT_98F
-	const EVENT_990
-	const EVENT_991
-	const EVENT_992
-	const EVENT_993
-	const EVENT_994
-	const EVENT_995
-	const EVENT_996
-	const EVENT_997
-	const EVENT_998
-	const EVENT_999
-	const EVENT_99A
-	const EVENT_99B
-	const EVENT_99C
-	const EVENT_99D
-	const EVENT_99E
-	const EVENT_99F
-	const EVENT_9A0
-	const EVENT_9A1
-	const EVENT_9A2
-	const EVENT_9A3
-	const EVENT_9A4
-	const EVENT_9A5
-	const EVENT_9A6
-	const EVENT_9A7
-	const EVENT_9A8
-	const EVENT_9A9
-	const EVENT_9AA
-	const EVENT_9AB
-	const EVENT_9AC
-	const EVENT_9AD
-	const EVENT_9AE
-	const EVENT_9AF
-	const EVENT_9B0
+
+; Rock Tunnel events
+	const_next $9B0
+	const_skip
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2
@@ -2488,74 +754,20 @@
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6
 	const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7
-	const EVENT_9B9
-	const EVENT_9BA
-	const EVENT_9BB
-	const EVENT_9BC
-	const EVENT_9BD
-	const EVENT_9BE
-	const EVENT_9BF
+
+; Seafoam Islands events
+	const_next $9C0
 	const EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
 	const EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE
-	const EVENT_9C2
-	const EVENT_9C3
-	const EVENT_9C4
-	const EVENT_9C5
-	const EVENT_9C6
-	const EVENT_9C7
+	const_skip 6
 	const EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
 	const EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
-	const EVENT_9CA
-	const EVENT_9CB
-	const EVENT_9CC
-	const EVENT_9CD
-	const EVENT_9CE
-	const EVENT_9CF
+	const_skip 6
 	const EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
 	const EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
-	const EVENT_9D2
-	const EVENT_9D3
-	const EVENT_9D4
-	const EVENT_9D5
-	const EVENT_9D6
-	const EVENT_9D7
-	const EVENT_9D8
-	const EVENT_9D9
+	const_skip 8
 	const EVENT_BEAT_ARTICUNO
-	const EVENT_9DB
-	const EVENT_9DC
-	const EVENT_9DD
-	const EVENT_9DE
-	const EVENT_9DF
-	const EVENT_9E0
-	const EVENT_9E1
-	const EVENT_9E2
-	const EVENT_9E3
-	const EVENT_9E4
-	const EVENT_9E5
-	const EVENT_9E6
-	const EVENT_9E7
-	const EVENT_9E8
-	const EVENT_9E9
-	const EVENT_9EA
-	const EVENT_9EB
-	const EVENT_9EC
-	const EVENT_9ED
-	const EVENT_9EE
-	const EVENT_9EF
-	const EVENT_9F0
-	const EVENT_9F1
-	const EVENT_9F2
-	const EVENT_9F3
-	const EVENT_9F4
-	const EVENT_9F5
-	const EVENT_9F6
-	const EVENT_9F7
-	const EVENT_9F8
-	const EVENT_9F9
-	const EVENT_9FA
-	const EVENT_9FB
-	const EVENT_9FC
-	const EVENT_9FD
-	const EVENT_9FE
-	const EVENT_9FF
+
+; End of events
+	const_next $A00
+NUM_EVENTS EQU const_value
--- a/constants/input_constants.asm
+++ b/constants/input_constants.asm
@@ -1,12 +1,3 @@
-A_BUTTON EQU %00000001
-B_BUTTON EQU %00000010
-SELECT   EQU %00000100
-START    EQU %00001000
-D_RIGHT  EQU %00010000
-D_LEFT   EQU %00100000
-D_UP     EQU %01000000
-D_DOWN   EQU %10000000
-
 	const_def
 	const BIT_A_BUTTON
 	const BIT_B_BUTTON
@@ -16,3 +7,12 @@
 	const BIT_D_LEFT
 	const BIT_D_UP
 	const BIT_D_DOWN
+
+A_BUTTON EQU 1 << BIT_A_BUTTON
+B_BUTTON EQU 1 << BIT_B_BUTTON
+SELECT   EQU 1 << BIT_SELECT
+START    EQU 1 << BIT_START
+D_RIGHT  EQU 1 << BIT_D_RIGHT
+D_LEFT   EQU 1 << BIT_D_LEFT
+D_UP     EQU 1 << BIT_D_UP
+D_DOWN   EQU 1 << BIT_D_DOWN
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -100,7 +100,7 @@
 	const FLOOR_11F     ; $60
 	const FLOOR_B4F     ; $61
 
-const_value = $C4
+	const_next $C4
 
 ; HMs are defined before TMs, so the actual number of TM definitions
 ; is not yet available. The TM quantity is hard-coded here and must
@@ -115,9 +115,9 @@
 ; The first usage also defines HM01 as the first HM item id.
 IF !DEF(HM01)
 HM01 EQU const_value
-	enum_start NUM_TMS + 1
+__tmhm_value__ = NUM_TMS + 1
 ENDC
-HM_VALUE EQU __enum__ - NUM_TMS
+HM_VALUE EQU __tmhm_value__ - NUM_TMS
 IF HM_VALUE < 10
 MOVE_FOR_HM EQUS "HM0{d:HM_VALUE}_MOVE"
 ELSE
@@ -127,7 +127,8 @@
 PURGE MOVE_FOR_HM
 PURGE HM_VALUE
 	const HM_\1
-	enum \1_TMNUM
+\1_TMNUM EQU __tmhm_value__
+__tmhm_value__ = __tmhm_value__ + 1
 ENDM
 
 	add_hm CUT          ; $C4
@@ -145,17 +146,18 @@
 ; The first usage also defines TM01 as the first TM item id.
 IF !DEF(TM01)
 TM01 EQU const_value
-	enum_start 1
+__tmhm_value__ = 1
 ENDC
-IF __enum__ < 10
-MOVE_FOR_TM EQUS "TM0{d:__enum__}_MOVE"
+IF __tmhm_value__ < 10
+MOVE_FOR_TM EQUS "TM0{d:__tmhm_value__}_MOVE"
 ELSE
-MOVE_FOR_TM EQUS "TM{d:__enum__}_MOVE"
+MOVE_FOR_TM EQUS "TM{d:__tmhm_value__}_MOVE"
 ENDC
 MOVE_FOR_TM = \1
 PURGE MOVE_FOR_TM
 	const TM_\1
-	enum \1_TMNUM
+\1_TMNUM EQU __tmhm_value__
+__tmhm_value__ = __tmhm_value__ + 1
 ENDM
 
 	add_tm MEGA_PUNCH   ; $C9
@@ -212,5 +214,5 @@
 
 ; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
 ; These fit in 7 bytes, with one unused bit left over.
-	enum_start NUM_TMS + NUM_HMS + 1
-	enum UNUSED_TMNUM
+__tmhm_value__ = NUM_TMS + NUM_HMS + 1
+UNUSED_TMNUM EQU __tmhm_value__
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -3,12 +3,14 @@
 MAP_BORDER EQU 3
 
 ; connection directions
-EAST  EQU 1
-WEST  EQU 2
-SOUTH EQU 4
-NORTH EQU 8
+	const_def
+	shift_const EAST  ; 1
+	shift_const WEST  ; 2
+	shift_const SOUTH ; 4
+	shift_const NORTH ; 8
 
 ; tileset environments
-INDOOR  EQU 0
-CAVE    EQU 1
-OUTDOOR EQU 2
+	const_def
+	const INDOOR  ; 0
+	const CAVE    ; 1
+	const OUTDOOR ; 2
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -2,34 +2,45 @@
 PC_ITEM_CAPACITY  EQU 50
 
 ; text box IDs
-MESSAGE_BOX                       EQU $01
-FIELD_MOVE_MON_MENU               EQU $04
-JP_MOCHIMONO_MENU_TEMPLATE        EQU $05
-USE_TOSS_MENU_TEMPLATE            EQU $06
-JP_SAVE_MESSAGE_MENU_TEMPLATE     EQU $08
-JP_SPEED_OPTIONS_MENU_TEMPLATE    EQU $09
-BATTLE_MENU_TEMPLATE              EQU $0b
-SWITCH_STATS_CANCEL_MENU_TEMPLATE EQU $0c
-LIST_MENU_BOX                     EQU $0d
-BUY_SELL_QUIT_MENU_TEMPLATE       EQU $0e
-MONEY_BOX_TEMPLATE                EQU $0f
-MON_SPRITE_POPUP                  EQU $11
-JP_AH_MENU_TEMPLATE               EQU $12
-MONEY_BOX                         EQU $13
-TWO_OPTION_MENU                   EQU $14
-BUY_SELL_QUIT_MENU                EQU $15
-JP_POKEDEX_MENU_TEMPLATE          EQU $1a
-SAFARI_BATTLE_MENU_TEMPLATE       EQU $1b
+	const_def 1
+	const MESSAGE_BOX                       ; $01
+	const_skip                              ; $02
+	const_skip                              ; $03
+	const FIELD_MOVE_MON_MENU               ; $04
+	const JP_MOCHIMONO_MENU_TEMPLATE        ; $05
+	const USE_TOSS_MENU_TEMPLATE            ; $06
+	const_skip                              ; $07
+	const JP_SAVE_MESSAGE_MENU_TEMPLATE     ; $08
+	const JP_SPEED_OPTIONS_MENU_TEMPLATE    ; $09
+	const_skip                              ; $0a
+	const BATTLE_MENU_TEMPLATE              ; $0b
+	const SWITCH_STATS_CANCEL_MENU_TEMPLATE ; $0c
+	const LIST_MENU_BOX                     ; $0d
+	const BUY_SELL_QUIT_MENU_TEMPLATE       ; $0e
+	const MONEY_BOX_TEMPLATE                ; $0f
+	const_skip                              ; $10
+	const MON_SPRITE_POPUP                  ; $11
+	const JP_AH_MENU_TEMPLATE               ; $12
+	const MONEY_BOX                         ; $13
+	const TWO_OPTION_MENU                   ; $14
+	const BUY_SELL_QUIT_MENU                ; $15
+	const_skip                              ; $16
+	const_skip                              ; $17
+	const_skip                              ; $18
+	const_skip                              ; $19
+	const JP_POKEDEX_MENU_TEMPLATE          ; $1a
+	const SAFARI_BATTLE_MENU_TEMPLATE       ; $1b
 
 ; two option menu constants
-YES_NO_MENU       EQU 0
-NORTH_WEST_MENU   EQU 1
-SOUTH_EAST_MENU   EQU 2
-WIDE_YES_NO_MENU  EQU 3
-NORTH_EAST_MENU   EQU 4
-TRADE_CANCEL_MENU EQU 5
-HEAL_CANCEL_MENU  EQU 6
-NO_YES_MENU       EQU 7
+	const_def
+	const YES_NO_MENU       ; 0
+	const NORTH_WEST_MENU   ; 1
+	const SOUTH_EAST_MENU   ; 2
+	const WIDE_YES_NO_MENU  ; 3
+	const NORTH_EAST_MENU   ; 4
+	const TRADE_CANCEL_MENU ; 5
+	const HEAL_CANCEL_MENU  ; 6
+	const NO_YES_MENU       ; 7
 
 ; menu exit method constants for list menus and the buy/sell/quit menu
 CHOSE_MENU_ITEM   EQU 1 ; pressed A
@@ -40,31 +51,35 @@
 CHOSE_SECOND_ITEM EQU 2
 
 ; move mon constants
-BOX_TO_PARTY     EQU 0
-PARTY_TO_BOX     EQU 1
-DAYCARE_TO_PARTY EQU 2
-PARTY_TO_DAYCARE EQU 3
+	const_def
+	const BOX_TO_PARTY     ; 0
+	const PARTY_TO_BOX     ; 1
+	const DAYCARE_TO_PARTY ; 2
+	const PARTY_TO_DAYCARE ; 3
 
 ; party menu types
-NORMAL_PARTY_MENU    EQU 0
-USE_ITEM_PARTY_MENU  EQU 1
-BATTLE_PARTY_MENU    EQU 2
-TMHM_PARTY_MENU      EQU 3
-SWAP_MONS_PARTY_MENU EQU 4
-EVO_STONE_PARTY_MENU EQU 5
+	const_def
+	const NORMAL_PARTY_MENU    ; 0
+	const USE_ITEM_PARTY_MENU  ; 1
+	const BATTLE_PARTY_MENU    ; 2
+	const TMHM_PARTY_MENU      ; 3
+	const SWAP_MONS_PARTY_MENU ; 4
+	const EVO_STONE_PARTY_MENU ; 5
 
 ; party menu message IDs
-ANTIDOTE_MSG     EQU $F0
-BURN_HEAL_MSG    EQU $F1
-ICE_HEAL_MSG     EQU $F2
-AWAKENING_MSG    EQU $F3
-PARALYZ_HEAL_MSG EQU $F4
-POTION_MSG       EQU $F5
-FULL_HEAL_MSG    EQU $F6
-REVIVE_MSG       EQU $F7
-RARE_CANDY_MSG   EQU $F8
+	const_def $F0
+	const ANTIDOTE_MSG     ; $F0
+	const BURN_HEAL_MSG    ; $F1
+	const ICE_HEAL_MSG     ; $F2
+	const AWAKENING_MSG    ; $F3
+	const PARALYZ_HEAL_MSG ; $F4
+	const POTION_MSG       ; $F5
+	const FULL_HEAL_MSG    ; $F6
+	const REVIVE_MSG       ; $F7
+	const RARE_CANDY_MSG   ; $F8
 
 ; naming screen types
-NAME_PLAYER_SCREEN EQU 0
-NAME_RIVAL_SCREEN  EQU 1
-NAME_MON_SCREEN    EQU 2
+	const_def
+	const NAME_PLAYER_SCREEN ; 0
+	const NAME_RIVAL_SCREEN  ; 1
+	const NAME_MON_SCREEN    ; 2
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -3,6 +3,7 @@
 TRUE  EQU 1
 
 ; flag operations
-FLAG_RESET EQU 0
-FLAG_SET   EQU 1
-FLAG_TEST  EQU 2
+	const_def
+	const FLAG_RESET ; 0
+	const FLAG_SET   ; 1
+	const FLAG_TEST  ; 2
--- a/constants/move_effect_constants.asm
+++ b/constants/move_effect_constants.asm
@@ -5,7 +5,7 @@
 
 	const_def
 	const NO_ADDITIONAL_EFFECT       ; $00
-	const UNUSED_EFFECT_01           ; $01
+	const_skip                       ; $01
 	const POISON_SIDE_EFFECT1        ; $02
 	const DRAIN_HP_EFFECT            ; $03
 	const BURN_SIDE_EFFECT1          ; $04
@@ -34,12 +34,12 @@
 	const THRASH_PETAL_DANCE_EFFECT  ; $1B
 	const SWITCH_AND_TELEPORT_EFFECT ; $1C
 	const TWO_TO_FIVE_ATTACKS_EFFECT ; $1D
-	const UNUSED_EFFECT_1E           ; $1E
+	const_skip                       ; $1E
 	const FLINCH_SIDE_EFFECT1        ; $1F
 	const SLEEP_EFFECT               ; $20
 	const POISON_SIDE_EFFECT2        ; $21
 	const BURN_SIDE_EFFECT2          ; $22
-	const UNUSED_EFFECT_23           ; $23
+	const_skip                       ; $23
 	const PARALYZE_SIDE_EFFECT2      ; $24
 	const FLINCH_SIDE_EFFECT2        ; $25
 	const OHKO_EFFECT                ; $26 moves like Horn Drill
@@ -76,13 +76,13 @@
 	const DEFENSE_DOWN_SIDE_EFFECT   ; $45
 	const SPEED_DOWN_SIDE_EFFECT     ; $46
 	const SPECIAL_DOWN_SIDE_EFFECT   ; $47
-	const UNUSED_EFFECT_48           ; $48
-	const UNUSED_EFFECT_49           ; $49
-	const UNUSED_EFFECT_4A           ; $4A
-	const UNUSED_EFFECT_4B           ; $4B
+	const_skip                       ; $48
+	const_skip                       ; $49
+	const_skip                       ; $4A
+	const_skip                       ; $4B
 	const CONFUSION_SIDE_EFFECT      ; $4C
 	const TWINEEDLE_EFFECT           ; $4D
-	const UNUSED_EFFECT_4E           ; $4E
+	const_skip                       ; $4E
 	const SUBSTITUTE_EFFECT          ; $4F
 	const HYPER_BEAM_EFFECT          ; $50
 	const RAGE_EFFECT                ; $51
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -30,8 +30,8 @@
 	const BLASTOISE    ; $1C
 	const PINSIR       ; $1D
 	const TANGELA      ; $1E
-	const MISSINGNO_1F ; $1F
-	const MISSINGNO_20 ; $20
+	const_skip         ; $1F
+	const_skip         ; $20
 	const GROWLITHE    ; $21
 	const ONIX         ; $22
 	const FEAROW       ; $23
@@ -49,26 +49,26 @@
 	const PSYDUCK      ; $2F
 	const DROWZEE      ; $30
 	const GOLEM        ; $31
-	const MISSINGNO_32 ; $32
+	const_skip         ; $32
 	const MAGMAR       ; $33
-	const MISSINGNO_34 ; $34
+	const_skip         ; $34
 	const ELECTABUZZ   ; $35
 	const MAGNETON     ; $36
 	const KOFFING      ; $37
-	const MISSINGNO_38 ; $38
+	const_skip         ; $38
 	const MANKEY       ; $39
 	const SEEL         ; $3A
 	const DIGLETT      ; $3B
 	const TAUROS       ; $3C
-	const MISSINGNO_3D ; $3D
-	const MISSINGNO_3E ; $3E
-	const MISSINGNO_3F ; $3F
+	const_skip         ; $3D
+	const_skip         ; $3E
+	const_skip         ; $3F
 	const FARFETCHD    ; $40
 	const VENONAT      ; $41
 	const DRAGONITE    ; $42
-	const MISSINGNO_43 ; $43
-	const MISSINGNO_44 ; $44
-	const MISSINGNO_45 ; $45
+	const_skip         ; $43
+	const_skip         ; $44
+	const_skip         ; $45
 	const DODUO        ; $46
 	const POLIWAG      ; $47
 	const JYNX         ; $48
@@ -78,15 +78,15 @@
 	const DITTO        ; $4C
 	const MEOWTH       ; $4D
 	const KRABBY       ; $4E
-	const MISSINGNO_4F ; $4F
-	const MISSINGNO_50 ; $50
-	const MISSINGNO_51 ; $51
+	const_skip         ; $4F
+	const_skip         ; $50
+	const_skip         ; $51
 	const VULPIX       ; $52
 	const NINETALES    ; $53
 	const PIKACHU      ; $54
 	const RAICHU       ; $55
-	const MISSINGNO_56 ; $56
-	const MISSINGNO_57 ; $57
+	const_skip         ; $56
+	const_skip         ; $57
 	const DRATINI      ; $58
 	const DRAGONAIR    ; $59
 	const KABUTO       ; $5A
@@ -93,8 +93,8 @@
 	const KABUTOPS     ; $5B
 	const HORSEA       ; $5C
 	const SEADRA       ; $5D
-	const MISSINGNO_5E ; $5E
-	const MISSINGNO_5F ; $5F
+	const_skip         ; $5E
+	const_skip         ; $5F
 	const SANDSHREW    ; $60
 	const SANDSLASH    ; $61
 	const OMANYTE      ; $62
@@ -114,19 +114,19 @@
 	const WEEDLE       ; $70
 	const KAKUNA       ; $71
 	const BEEDRILL     ; $72
-	const MISSINGNO_73 ; $73
+	const_skip         ; $73
 	const DODRIO       ; $74
 	const PRIMEAPE     ; $75
 	const DUGTRIO      ; $76
 	const VENOMOTH     ; $77
 	const DEWGONG      ; $78
-	const MISSINGNO_79 ; $79
-	const MISSINGNO_7A ; $7A
+	const_skip         ; $79
+	const_skip         ; $7A
 	const CATERPIE     ; $7B
 	const METAPOD      ; $7C
 	const BUTTERFREE   ; $7D
 	const MACHAMP      ; $7E
-	const MISSINGNO_7F ; $7F
+	const_skip         ; $7F
 	const GOLDUCK      ; $80
 	const HYPNO        ; $81
 	const GOLBAT       ; $82
@@ -133,19 +133,19 @@
 	const MEWTWO       ; $83
 	const SNORLAX      ; $84
 	const MAGIKARP     ; $85
-	const MISSINGNO_86 ; $86
-	const MISSINGNO_87 ; $87
+	const_skip         ; $86
+	const_skip         ; $87
 	const MUK          ; $88
-	const MISSINGNO_89 ; $89
+	const_skip         ; $89
 	const KINGLER      ; $8A
 	const CLOYSTER     ; $8B
-	const MISSINGNO_8C ; $8C
+	const_skip         ; $8C
 	const ELECTRODE    ; $8D
 	const CLEFABLE     ; $8E
 	const WEEZING      ; $8F
 	const PERSIAN      ; $90
 	const MAROWAK      ; $91
-	const MISSINGNO_92 ; $92
+	const_skip         ; $92
 	const HAUNTER      ; $93
 	const ABRA         ; $94
 	const ALAKAZAM     ; $95
@@ -155,13 +155,13 @@
 	const BULBASAUR    ; $99
 	const VENUSAUR     ; $9A
 	const TENTACRUEL   ; $9B
-	const MISSINGNO_9C ; $9C
+	const_skip         ; $9C
 	const GOLDEEN      ; $9D
 	const SEAKING      ; $9E
-	const MISSINGNO_9F ; $9F
-	const MISSINGNO_A0 ; $A0
-	const MISSINGNO_A1 ; $A1
-	const MISSINGNO_A2 ; $A2
+	const_skip         ; $9F
+	const_skip         ; $A0
+	const_skip         ; $A1
+	const_skip         ; $A2
 	const PONYTA       ; $A3
 	const RAPIDASH     ; $A4
 	const RATTATA      ; $A5
@@ -171,16 +171,16 @@
 	const GEODUDE      ; $A9
 	const PORYGON      ; $AA
 	const AERODACTYL   ; $AB
-	const MISSINGNO_AC ; $AC
+	const_skip         ; $AC
 	const MAGNEMITE    ; $AD
-	const MISSINGNO_AE ; $AE
-	const MISSINGNO_AF ; $AF
+	const_skip         ; $AE
+	const_skip         ; $AF
 	const CHARMANDER   ; $B0
 	const SQUIRTLE     ; $B1
 	const CHARMELEON   ; $B2
 	const WARTORTLE    ; $B3
 	const CHARIZARD    ; $B4
-	const MISSINGNO_B5 ; $B5
+	const_skip         ; $B5
 	const FOSSIL_KABUTOPS   ; $B6
 	const FOSSIL_AERODACTYL ; $B7
 	const MON_GHOST    ; $B8
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -10,19 +10,21 @@
 
 ; mon data locations
 ; Note that some values are not supported by all functions that use these values.
-PLAYER_PARTY_DATA EQU 0
-ENEMY_PARTY_DATA  EQU 1
-BOX_DATA          EQU 2
-DAYCARE_DATA      EQU 3
-BATTLE_MON_DATA   EQU 4
+	const_def
+	const PLAYER_PARTY_DATA ; 0
+	const ENEMY_PARTY_DATA  ; 1
+	const BOX_DATA          ; 2
+	const DAYCARE_DATA      ; 3
+	const BATTLE_MON_DATA   ; 4
 
 
 ; See data/pokemon/evos_moves.asm
 
 ; Evolution types
-EV_LEVEL EQU 1
-EV_ITEM  EQU 2
-EV_TRADE EQU 3
+	const_def 1
+	const EV_LEVEL ; 1
+	const EV_ITEM  ; 2
+	const EV_TRADE ; 3
 
 MAX_EVOLUTIONS EQU 3
 EVOLUTION_SIZE EQU 4
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -1,7 +1,8 @@
 ; emotion bubbles
-EXCLAMATION_BUBBLE EQU 0
-QUESTION_BUBBLE    EQU 1
-SMILE_BUBBLE       EQU 2
+	const_def
+	const EXCLAMATION_BUBBLE ; 0
+	const QUESTION_BUBBLE    ; 1
+	const SMILE_BUBBLE       ; 2
 
 ; slot symbols
 SLOTS7      EQU $0200
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -1,22 +1,24 @@
 ; sprite facing directions
-SPRITE_FACING_DOWN  EQU $00
-SPRITE_FACING_UP    EQU $04
-SPRITE_FACING_LEFT  EQU $08
-SPRITE_FACING_RIGHT EQU $0C
+	const_def 0, $04
+	const SPRITE_FACING_DOWN  ; $00
+	const SPRITE_FACING_UP    ; $04
+	const SPRITE_FACING_LEFT  ; $08
+	const SPRITE_FACING_RIGHT ; $0C
 
-NPC_MOVEMENT_DOWN  EQU $00
-NPC_MOVEMENT_UP    EQU $40
-NPC_MOVEMENT_LEFT  EQU $80
-NPC_MOVEMENT_RIGHT EQU $C0
+	const_def 0, $40
+	const NPC_MOVEMENT_DOWN  ; $00
+	const NPC_MOVEMENT_UP    ; $40
+	const NPC_MOVEMENT_LEFT  ; $80
+	const NPC_MOVEMENT_RIGHT ; $C0
 
 ; player direction constants
+	const_def
+	const PLAYER_DIR_BIT_RIGHT ; 0
+	const PLAYER_DIR_BIT_LEFT  ; 1
+	const PLAYER_DIR_BIT_DOWN  ; 2
+	const PLAYER_DIR_BIT_UP    ; 3
 
-PLAYER_DIR_BIT_RIGHT EQU 0
-PLAYER_DIR_BIT_LEFT  EQU 1
-PLAYER_DIR_BIT_DOWN  EQU 2
-PLAYER_DIR_BIT_UP    EQU 3
-
-PLAYER_DIR_RIGHT EQU (1 << PLAYER_DIR_BIT_RIGHT)
-PLAYER_DIR_LEFT  EQU (1 << PLAYER_DIR_BIT_LEFT)
-PLAYER_DIR_DOWN  EQU (1 << PLAYER_DIR_BIT_DOWN)
-PLAYER_DIR_UP    EQU (1 << PLAYER_DIR_BIT_UP)
+PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT
+PLAYER_DIR_LEFT  EQU 1 << PLAYER_DIR_BIT_LEFT
+PLAYER_DIR_DOWN  EQU 1 << PLAYER_DIR_BIT_DOWN
+PLAYER_DIR_UP    EQU 1 << PLAYER_DIR_BIT_UP
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -2,9 +2,10 @@
 ITEM_NAME_LENGTH EQU 13
 
 ; PrintNumber
-BIT_MONEY_SIGN     EQU 5
-BIT_LEFT_ALIGN     EQU 6
-BIT_LEADING_ZEROES EQU 7
+	const_def 5
+	const BIT_MONEY_SIGN     ; 5
+	const BIT_LEFT_ALIGN     ; 6
+	const BIT_LEADING_ZEROES ; 7
 
 MONEY_SIGN EQU     (1 << BIT_MONEY_SIGN)
 LEFT_ALIGN EQU     (1 << BIT_LEFT_ALIGN)
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,9 +1,8 @@
 OPP_ID_OFFSET EQU 200
 
 trainer_const: MACRO
-\1     EQU const_value
-OPP_\1 EQU const_value + OPP_ID_OFFSET
-const_value = const_value + 1
+	const \1
+OPP_\1 EQU OPP_ID_OFFSET + \1
 ENDM
 
 	const_def
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -11,7 +11,7 @@
 	const BUG          ; $07
 	const GHOST        ; $08
 
-const_value = $14
+	const_next 20
 
 SPECIAL EQU const_value
 	const FIRE         ; $14
--- a/macros.asm
+++ b/macros.asm
@@ -1,4 +1,4 @@
-INCLUDE "macros/enum.asm"
+INCLUDE "macros/const.asm"
 INCLUDE "macros/predef.asm"
 INCLUDE "macros/farcall.asm"
 INCLUDE "macros/data.asm"
--- /dev/null
+++ b/macros/const.asm
@@ -1,0 +1,40 @@
+; Enumerate constants
+
+const_def: MACRO
+IF _NARG >= 1
+const_value = \1
+ELSE
+const_value = 0
+ENDC
+IF _NARG >= 2
+const_inc = \2
+ELSE
+const_inc = 1
+ENDC
+ENDM
+
+const: MACRO
+\1 EQU const_value
+const_value = const_value + const_inc
+ENDM
+
+shift_const: MACRO
+\1 EQU (1 << const_value)
+const_value = const_value + const_inc
+ENDM
+
+const_skip: MACRO
+if _NARG >= 1
+const_value = const_value + const_inc * (\1)
+else
+const_value = const_value + const_inc
+endc
+ENDM
+
+const_next: MACRO
+if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
+fail "const_next cannot go backwards from {const_value} to \1"
+else
+const_value = \1
+endc
+ENDM
--- a/macros/enum.asm
+++ /dev/null
@@ -1,43 +1,0 @@
-; Enumerate variables
-
-enum_start: MACRO
-IF _NARG >= 1
-__enum__ = \1
-ELSE
-__enum__ = 0
-ENDC
-IF _NARG >= 2
-__enumdir__ = \2
-ELSE
-__enumdir__ = 1
-ENDC
-ENDM
-
-enum: MACRO
-\1 EQU __enum__
-__enum__ = __enum__ + __enumdir__
-ENDM
-
-enum_set: MACRO
-__enum__ = \1
-ENDM
-
-; Enumerate constants
-
-const_def: MACRO
-IF _NARG >= 1
-const_value = \1
-ELSE
-const_value = 0
-ENDC
-ENDM
-
-const: MACRO
-\1 EQU const_value
-const_value = const_value + 1
-ENDM
-
-shift_const: MACRO
-\1 EQU (1 << const_value)
-const_value = const_value + 1
-ENDM
--- a/macros/scripts/text.asm
+++ b/macros/scripts/text.asm
@@ -11,20 +11,20 @@
 
 
 ; TextCommandJumpTable indexes (see home/text.asm)
-	enum_start
+	const_def
 
-	enum TX_START ; $00
+	const TX_START ; $00
 text_start: MACRO
 	db TX_START
 ENDM
 
-	enum TX_RAM ; $01
+	const TX_RAM ; $01
 text_ram: MACRO
 	db TX_RAM
 	dw \1 ; address to read from
 ENDM
 
-	enum TX_BCD ; $02
+	const TX_BCD ; $02
 text_bcd: MACRO
 	db TX_BCD
 	dw \1 ; address to read from
@@ -31,13 +31,13 @@
 	db \2 ; number of bytes + print flags
 ENDM
 
-	enum TX_MOVE ; $03
+	const TX_MOVE ; $03
 text_move: MACRO
 	db TX_MOVE
 	dw \1 ; address of the new location
 ENDM
 
-	enum TX_BOX ; $04
+	const TX_BOX ; $04
 text_box: MACRO
 ; draw box
 	db TX_BOX
@@ -45,27 +45,27 @@
 	db \2, \3 ; height, width
 ENDM
 
-	enum TX_LOW ; $05
+	const TX_LOW ; $05
 text_low: MACRO
 	db TX_LOW
 ENDM
 
-	enum TX_PROMPT_BUTTON ; $06
+	const TX_PROMPT_BUTTON ; $06
 text_promptbutton: MACRO
 	db TX_PROMPT_BUTTON
 ENDM
 
-	enum TX_SCROLL ; $07
+	const TX_SCROLL ; $07
 text_scroll: MACRO
 	db TX_SCROLL
 ENDM
 
-	enum TX_START_ASM ; $08
+	const TX_START_ASM ; $08
 text_asm: MACRO
 	db TX_START_ASM
 ENDM
 
-	enum TX_NUM ; $09
+	const TX_NUM ; $09
 text_decimal: MACRO
 ; print a big-endian decimal number.
 	db TX_NUM
@@ -73,12 +73,12 @@
 	dn \2, \3 ; number of bytes to read, number of digits to display
 ENDM
 
-	enum TX_PAUSE ; $0a
+	const TX_PAUSE ; $0a
 text_pause: MACRO
 	db TX_PAUSE
 ENDM
 
-	enum TX_SOUND_GET_ITEM_1 ; $0b
+	const TX_SOUND_GET_ITEM_1 ; $0b
 sound_get_item_1: MACRO
 	db TX_SOUND_GET_ITEM_1
 ENDM
@@ -86,63 +86,63 @@
 TX_SOUND_LEVEL_UP EQU TX_SOUND_GET_ITEM_1
 sound_level_up EQUS "sound_get_item_1"
 
-	enum TX_DOTS ; $0c
+	const TX_DOTS ; $0c
 text_dots: MACRO
 	db TX_DOTS
 	db \1 ; number of ellipses to draw
 ENDM
 
-	enum TX_WAIT_BUTTON ; $0d
+	const TX_WAIT_BUTTON ; $0d
 text_waitbutton: MACRO
 	db TX_WAIT_BUTTON
 ENDM
 
-	enum TX_SOUND_POKEDEX_RATING ; $0e
+	const TX_SOUND_POKEDEX_RATING ; $0e
 sound_pokedex_rating: MACRO
 	db TX_SOUND_POKEDEX_RATING
 ENDM
 
-	enum TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f
+	const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f
 sound_get_item_1_duplicate: MACRO
 	db TX_SOUND_GET_ITEM_1_DUPLICATE
 ENDM
 
-	enum TX_SOUND_GET_ITEM_2 ; $10
+	const TX_SOUND_GET_ITEM_2 ; $10
 sound_get_item_2: MACRO
 	db TX_SOUND_GET_ITEM_2
 ENDM
 
-	enum TX_SOUND_GET_KEY_ITEM ; $11
+	const TX_SOUND_GET_KEY_ITEM ; $11
 sound_get_key_item: MACRO
 	db TX_SOUND_GET_KEY_ITEM
 ENDM
 
-	enum TX_SOUND_CAUGHT_MON ; $12
+	const TX_SOUND_CAUGHT_MON ; $12
 sound_caught_mon: MACRO
 	db TX_SOUND_CAUGHT_MON
 ENDM
 
-	enum TX_SOUND_DEX_PAGE_ADDED ; $13
+	const TX_SOUND_DEX_PAGE_ADDED ; $13
 sound_dex_page_added: MACRO
 	db TX_SOUND_DEX_PAGE_ADDED
 ENDM
 
-	enum TX_SOUND_CRY_NIDORINA ; $14
+	const TX_SOUND_CRY_NIDORINA ; $14
 sound_cry_nidorina: MACRO
 	db TX_SOUND_CRY_NIDORINA
 ENDM
 
-	enum TX_SOUND_CRY_PIDGEOT ; $15
+	const TX_SOUND_CRY_PIDGEOT ; $15
 sound_cry_pidgeot: MACRO
 	db TX_SOUND_CRY_PIDGEOT
 ENDM
 
-	enum TX_SOUND_CRY_DEWGONG ; $16
+	const TX_SOUND_CRY_DEWGONG ; $16
 sound_cry_dewgong: MACRO
 	db TX_SOUND_CRY_DEWGONG
 ENDM
 
-	enum TX_FAR ; $17
+	const TX_FAR ; $17
 text_far: MACRO
 	db TX_FAR
 	dab \1 ; address of text commands
@@ -149,9 +149,9 @@
 ENDM
 
 
-	enum_set $50
+	const_next $50
 
-	enum TX_END ; $50
+	const TX_END ; $50
 text_end: MACRO
 	db TX_END
 ENDM
@@ -158,54 +158,56 @@
 
 
 ; Text script IDs (see home/text_script.asm)
-	enum_set $f5
+	const_def -1, -1
 
-	enum TX_SCRIPT_VENDING_MACHINE ; $f5
-script_vending_machine: MACRO
-	db TX_SCRIPT_VENDING_MACHINE
+	const TX_SCRIPT_POKECENTER_NURSE ; $ff
+script_pokecenter_nurse: MACRO
+	db TX_SCRIPT_POKECENTER_NURSE
 ENDM
 
-	enum TX_SCRIPT_CABLE_CLUB_RECEPTIONIST ; $f6
-script_cable_club_receptionist: MACRO
-	db TX_SCRIPT_CABLE_CLUB_RECEPTIONIST
+	const TX_SCRIPT_MART ; $fe
+script_mart: MACRO
+	db TX_SCRIPT_MART
+	db _NARG ; number of items
+REPT _NARG
+	db \1 ; item id
+	SHIFT
+ENDR
+	db -1 ; end
 ENDM
 
-	enum TX_SCRIPT_PRIZE_VENDOR ; $f7
-script_prize_vendor: MACRO
-	db TX_SCRIPT_PRIZE_VENDOR
+	const TX_SCRIPT_BILLS_PC ; $fd
+script_bills_pc: MACRO
+	db TX_SCRIPT_BILLS_PC
 ENDM
 
-	enum_set $f9
+	const TX_SCRIPT_PLAYERS_PC ; $fc
+script_players_pc: MACRO
+	db TX_SCRIPT_PLAYERS_PC
+ENDM
 
-	enum TX_SCRIPT_POKECENTER_PC ; $f9
+	const_skip ; $fb
+
+	const_skip ; $fa
+
+	const TX_SCRIPT_POKECENTER_PC ; $f9
 script_pokecenter_pc: MACRO
 	db TX_SCRIPT_POKECENTER_PC
 ENDM
 
-	enum_set $fc
+	const_skip ; $f8
 
-	enum TX_SCRIPT_PLAYERS_PC ; $fc
-script_players_pc: MACRO
-	db TX_SCRIPT_PLAYERS_PC
+	const TX_SCRIPT_PRIZE_VENDOR ; $f7
+script_prize_vendor: MACRO
+	db TX_SCRIPT_PRIZE_VENDOR
 ENDM
 
-	enum TX_SCRIPT_BILLS_PC ; $fd
-script_bills_pc: MACRO
-	db TX_SCRIPT_BILLS_PC
+	const TX_SCRIPT_CABLE_CLUB_RECEPTIONIST ; $f6
+script_cable_club_receptionist: MACRO
+	db TX_SCRIPT_CABLE_CLUB_RECEPTIONIST
 ENDM
 
-	enum TX_SCRIPT_MART ; $fe
-script_mart: MACRO
-	db TX_SCRIPT_MART
-	db _NARG ; number of items
-REPT _NARG
-	db \1 ; item id
-	SHIFT
-ENDR
-	db -1 ; end
-ENDM
-
-	enum TX_SCRIPT_POKECENTER_NURSE ; $ff
-script_pokecenter_nurse: MACRO
-	db TX_SCRIPT_POKECENTER_NURSE
+	const TX_SCRIPT_VENDING_MACHINE ; $f5
+script_vending_machine: MACRO
+	db TX_SCRIPT_VENDING_MACHINE
 ENDM
--- a/wram.asm
+++ b/wram.asm
@@ -3005,7 +3005,7 @@
 
 	ds 2
 wEventFlags::
-	ds 320
+	flag_array NUM_EVENTS
 
 wLinkEnemyTrainerName::
 ; linked game's trainer name