summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-05-12 13:10:01 -0400
committerentrpntr <entrpntr@gmail.com>2020-05-12 13:31:27 -0400
commit3e40a1ecd0dc81d1d5be5f1adda1fbbe14b67d83 (patch)
treef16febfeb0c404b6fd1c0e630d26da14eaf07a71
parentdac57cee381b68350ef50317619334892c140945 (diff)
Simple cleanups in constants/data/macros and banks 1-4.
-rw-r--r--charmap.asm2
-rw-r--r--constants/battle_anim_constants.asm6
-rw-r--r--constants/battle_constants.asm105
-rwxr-xr-xconstants/collision_constants.asm10
-rwxr-xr-xconstants/cry_constants.asm1
-rw-r--r--constants/deco_constants.asm120
-rw-r--r--constants/gfx_constants.asm2
-rw-r--r--constants/map_constants.asm2
-rw-r--r--constants/map_data_constants.asm4
-rw-r--r--constants/menu_constants.asm2
-rw-r--r--constants/misc_constants.asm7
-rw-r--r--constants/move_constants.asm570
-rw-r--r--constants/music_constants.asm3
-rw-r--r--constants/phone_constants.asm7
-rw-r--r--constants/pokemon_constants.asm58
-rw-r--r--constants/pokemon_data_constants.asm49
-rwxr-xr-xconstants/printer_constants.asm4
-rw-r--r--constants/radio_constants.asm145
-rw-r--r--constants/scgb_constants.asm19
-rw-r--r--constants/script_constants.asm8
-rw-r--r--constants/serial_constants.asm2
-rw-r--r--constants/sfx_constants.asm3
-rw-r--r--constants/std_constants.asm2
-rw-r--r--constants/text_constants.asm3
-rw-r--r--constants/tileset_constants.asm2
-rw-r--r--constants/wram_constants.asm18
-rw-r--r--data/battle/critical_hit_chances.asm14
-rwxr-xr-xdata/collision_permissions.asm424
-rw-r--r--data/events/happiness_probabilities.asm14
-rw-r--r--data/items/attributes.asm1084
-rw-r--r--data/moves/magnitude_power.asm14
-rw-r--r--data/moves/present_power.asm6
-rw-r--r--data/moves/tmhm_moves.asm66
-rw-r--r--data/player_names.asm1
-rw-r--r--data/pokemon/egg_moves.asm221
-rw-r--r--data/pokemon/evos_attacks.asm15
-rw-r--r--data/pokemon/evos_attacks_pointers.asm6
-rw-r--r--data/pokemon/palettes.asm33
-rw-r--r--data/pokemon/pic_pointers.asm3
-rw-r--r--data/trainers/palettes.asm11
-rw-r--r--engine/battle/ai/items.asm1
-rw-r--r--engine/battle/ai/scoring.asm69
-rwxr-xr-xengine/events/happiness_egg.asm6
-rw-r--r--engine/events/pokerus/pokerus.asm30
-rwxr-xr-xengine/events/shuckle.asm3
-rwxr-xr-xengine/events/specials.asm3
-rwxr-xr-xengine/events/whiteout.asm6
-rw-r--r--engine/gfx/load_push_oam.asm3
-rwxr-xr-xengine/items/item_effects.asm4
-rwxr-xr-xengine/items/tmhm2.asm91
-rwxr-xr-xengine/link/place_waiting_text.asm3
-rwxr-xr-xengine/math/math.asm23
-rw-r--r--engine/math/sine.asm39
-rw-r--r--engine/movie/title.asm2
-rwxr-xr-xengine/overworld/npc_movement.asm4
-rwxr-xr-xengine/overworld/player_movement.asm13
-rwxr-xr-xengine/overworld/player_object.asm5
-rwxr-xr-xengine/overworld/time.asm4
-rw-r--r--engine/pokemon/breeding.asm6
-rw-r--r--engine/pokemon/correct_nick_errors.asm33
-rwxr-xr-xengine/pokemon/move_mon.asm2
-rw-r--r--engine/smallflag.asm3
-rw-r--r--engine/tilesets/map_palettes.asm2
-rw-r--r--gfx/tileset_palette_maps.asm11
-rw-r--r--macros.asm9
-rwxr-xr-xmacros/data.asm23
-rw-r--r--macros/move_anim.asm293
-rwxr-xr-xmacros/pals.asm8
-rw-r--r--macros/pic.asm4
-rw-r--r--macros/scripts/battle_anims.asm302
-rw-r--r--wram.asm2
71 files changed, 1934 insertions, 2139 deletions
diff --git a/charmap.asm b/charmap.asm
index a3b7d59d..728f7f3f 100644
--- a/charmap.asm
+++ b/charmap.asm
@@ -192,7 +192,7 @@
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
- charmap "·", $f2
+ charmap "<DOT>", $f2 ; decimal point; same as "." in English
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm
index 2fbbf595..bd5036d6 100644
--- a/constants/battle_anim_constants.asm
+++ b/constants/battle_anim_constants.asm
@@ -11,7 +11,7 @@
const BATTLEANIMSTRUCT_YCOORD
const BATTLEANIMSTRUCT_XOFFSET
const BATTLEANIMSTRUCT_YOFFSET
- const BATTLEANIMSTRUCT_0B
+ const BATTLEANIMSTRUCT_PARAM
const BATTLEANIMSTRUCT_DURATION
const BATTLEANIMSTRUCT_FRAME
const BATTLEANIMSTRUCT_ANON_JT_INDEX
@@ -708,7 +708,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const BATTLEANIMOAMSET_D7
; BattleBGEffects indexes (see engine/battle_anims/bg_effects.asm)
-const_value SET 1
+ const_def 1
const ANIM_BG_FLASH_INVERTED
const ANIM_BG_FLASH_WHITE
const ANIM_BG_WHITE_HUES
@@ -763,7 +763,7 @@ const_value SET 1
const ANIM_BG_34
; AnimObjGFX indexes (see data/battle_anims/object_gfx.asm)
-const_value SET 1
+ const_def 1
const ANIM_GFX_HIT
const ANIM_GFX_CUT
const ANIM_GFX_FIRE
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index ba373a0a..636d917a 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -37,19 +37,19 @@ NO_EFFECT EQU 00
const SP_DEFENSE
const ACCURACY
const EVASION
- const ABILITY
+ const ABILITY ; used for BattleCommand_Curse
NUM_LEVEL_STATS EQU const_value
; move struct members (see data/moves/moves.asm)
const_def
- const MOVE_ANIM
- const MOVE_EFFECT
- const MOVE_POWER
- const MOVE_TYPE
- const MOVE_ACC
- const MOVE_PP
- const MOVE_CHANCE
- const MOVE_LENGTH
+ const MOVE_ANIM ; 0
+ const MOVE_EFFECT ; 1
+ const MOVE_POWER ; 2
+ const MOVE_TYPE ; 3
+ const MOVE_ACC ; 4
+ const MOVE_PP ; 5
+ const MOVE_CHANCE ; 6
+MOVE_LENGTH EQU const_value
; stat constants
; indexes for:
@@ -76,12 +76,12 @@ MAX_STAT_VALUE EQU 999
ATKDEFDV_SHINY EQU $EA
SPDSPCDV_SHINY EQU $AA
-; battle classes
-const_value SET 1
+; battle classes (wBattleMode values)
+ const_def 1
const WILD_BATTLE
const TRAINER_BATTLE
-; battle types
+; battle types (wBattleType values)
const_def
const BATTLETYPE_NORMAL
const BATTLETYPE_CANLOSE
@@ -95,7 +95,7 @@ const_value SET 1
const BATTLETYPE_TRAP
const BATTLETYPE_FORCEITEM
-; battle variables
+; BattleVarPairs indexes (see home/battle.asm)
const_def
const BATTLE_VARS_SUBSTATUS1
const BATTLE_VARS_SUBSTATUS2
@@ -119,17 +119,46 @@ const_value SET 1
const BATTLE_VARS_LAST_MOVE
const BATTLE_VARS_LAST_MOVE_OPP
-; status
-const_value SET 3
+; BattleVarLocations indexes (see home/battle.asm)
+ const_def
+ const PLAYER_SUBSTATUS_1
+ const ENEMY_SUBSTATUS_1
+ const PLAYER_SUBSTATUS_2
+ const ENEMY_SUBSTATUS_2
+ const PLAYER_SUBSTATUS_3
+ const ENEMY_SUBSTATUS_3
+ const PLAYER_SUBSTATUS_4
+ const ENEMY_SUBSTATUS_4
+ const PLAYER_SUBSTATUS_5
+ const ENEMY_SUBSTATUS_5
+ const PLAYER_STATUS
+ const ENEMY_STATUS
+ const PLAYER_MOVE_ANIMATION
+ const ENEMY_MOVE_ANIMATION
+ const PLAYER_MOVE_EFFECT
+ const ENEMY_MOVE_EFFECT
+ const PLAYER_MOVE_POWER
+ const ENEMY_MOVE_POWER
+ const PLAYER_MOVE_TYPE
+ const ENEMY_MOVE_TYPE
+ const PLAYER_CUR_MOVE
+ const ENEMY_CUR_MOVE
+ const PLAYER_COUNTER_MOVE
+ const ENEMY_COUNTER_MOVE
+ const PLAYER_LAST_MOVE
+ const ENEMY_LAST_MOVE
+
+; status condition bit flags
+SLP EQU %111 ; 0-7 turns
+ const_def 3
const PSN
const BRN
const FRZ
const PAR
- const SLP ; 7 turns
-ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP
+ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP
-; substatus
+; wPlayerSubStatus1 or wEnemySubStatus1 bit flags
enum_start 7, -1
enum SUBSTATUS_IN_LOVE
enum SUBSTATUS_ROLLOUT
@@ -140,8 +169,10 @@ ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP
enum SUBSTATUS_CURSE
enum SUBSTATUS_NIGHTMARE
-SUBSTATUS_CURLED EQU 0
+; wPlayerSubStatus2 or wEnemySubStatus2 bit flags
+SUBSTATUS_CURLED EQU 0
+; wPlayerSubStatus3 or wEnemySubStatus3 bit flags
enum_start 7, -1
enum SUBSTATUS_CONFUSED
enum SUBSTATUS_FLYING
@@ -152,6 +183,7 @@ SUBSTATUS_CURLED EQU 0
enum SUBSTATUS_RAMPAGE
enum SUBSTATUS_BIDE
+; wPlayerSubStatus4 or wEnemySubStatus4 bit flags
enum_start 7, -1
enum SUBSTATUS_LEECH_SEED
enum SUBSTATUS_RAGE
@@ -162,6 +194,7 @@ SUBSTATUS_CURLED EQU 0
enum SUBSTATUS_MIST
enum SUBSTATUS_X_ACCURACY
+; wPlayerSubStatus5 or wEnemySubStatus5 bit flags
enum_start 7, -1
enum SUBSTATUS_CANT_RUN
enum SUBSTATUS_DESTINY_BOND
@@ -172,7 +205,7 @@ SUBSTATUS_CURLED EQU 0
enum SUBSTATUS_UNKNOWN_3
enum SUBSTATUS_TOXIC
-; environmental
+; wPlayerScreens or wEnemyScreens bit flags
enum_start 4, -1
enum SCREENS_REFLECT
enum SCREENS_LIGHT_SCREEN
@@ -180,7 +213,7 @@ SUBSTATUS_CURLED EQU 0
enum SCREENS_UNUSED
enum SCREENS_SPIKES
-; weather
+; values in wBattleWeather
const_def
const WEATHER_NONE
const WEATHER_RAIN
@@ -190,36 +223,6 @@ SUBSTATUS_CURLED EQU 0
const WEATHER_SUN_END
const WEATHER_SANDSTORM_END
-
-; Battle vars used in home/battle.asm
- const_def
- const PLAYER_SUBSTATUS_1
- const ENEMY_SUBSTATUS_1
- const PLAYER_SUBSTATUS_2
- const ENEMY_SUBSTATUS_2
- const PLAYER_SUBSTATUS_3
- const ENEMY_SUBSTATUS_3
- const PLAYER_SUBSTATUS_4
- const ENEMY_SUBSTATUS_4
- const PLAYER_SUBSTATUS_5
- const ENEMY_SUBSTATUS_5
- const PLAYER_STATUS
- const ENEMY_STATUS
- const PLAYER_MOVE_ANIMATION
- const ENEMY_MOVE_ANIMATION
- const PLAYER_MOVE_EFFECT
- const ENEMY_MOVE_EFFECT
- const PLAYER_MOVE_POWER
- const ENEMY_MOVE_POWER
- const PLAYER_MOVE_TYPE
- const ENEMY_MOVE_TYPE
- const PLAYER_CUR_MOVE
- const ENEMY_CUR_MOVE
- const PLAYER_COUNTER_MOVE
- const ENEMY_COUNTER_MOVE
- const PLAYER_LAST_MOVE
- const ENEMY_LAST_MOVE
-
; wBattleAction
const_def
const BATTLEACTION_MOVE1
diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm
index 7d2266f3..5626cb09 100755
--- a/constants/collision_constants.asm
+++ b/constants/collision_constants.asm
@@ -1,8 +1,8 @@
; collision permissions (see data/collision_permissions.asm)
-LANDTILE EQU $00
-WATER_TILE EQU $01
-WALLTILE EQU $0f
-TALK EQU $10
+LAND_TILE EQU $00
+WATER_TILE EQU $01
+WALL_TILE EQU $0f
+TALK EQU $10
; collision data types (see data/tilesets/*_collision.asm)
; TileCollisionTable indexes (see data/collision_permissions.asm)
@@ -20,7 +20,7 @@ COLL_TALL_GRASS EQU $18
COLL_CUT_TREE_1A EQU $1a ; unused
COLL_LONG_GRASS_1C EQU $1c ; unused
COLL_HEADBUTT_TREE_1D EQU $1d ; unused
-COLL_WATER_21 EQU $21 ; ???
+COLL_WATER_21 EQU $21 ; unused
COLL_ICE EQU $23
COLL_WHIRLPOOL EQU $24
COLL_BUOY EQU $27
diff --git a/constants/cry_constants.asm b/constants/cry_constants.asm
index da40877c..654aac52 100755
--- a/constants/cry_constants.asm
+++ b/constants/cry_constants.asm
@@ -1,3 +1,4 @@
+; Cries indexes (see audio/cry_pointers.asm)
const_def
; gen 1
diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm
index 0d9e6e43..09d292d5 100644
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -1,3 +1,4 @@
+; decoration types
const_value = 1
const DECO_PLANT
const DECO_BED
@@ -6,6 +7,7 @@ const_value = 1
const DECO_DOLL
const DECO_BIGDOLL
+; DecorationNames indexes (see data/decorations/names.asm)
const_value = 1
const PUT_IT_AWAY
const MAGNAPLANT
@@ -33,6 +35,7 @@ const_value = 1
const YELLOW_CARPET
const GREEN_CARPET
+; DoDecorationAction2.DecoActions indexes (see engine/overworld/decorations.asm)
const_value = 1
const SET_UP_BED
const PUT_AWAY_BED
@@ -54,68 +57,71 @@ const_value = 1
deco: MACRO
const DECO_\1
enum DECOFLAG_\1
-endm
+ENDM
-const_value = 1
-__enum__ = 0
+; decorations:
+; - DecorationAttributes (see data/decorations/attributes.asm)
+; - DecorationIDs (see data/decorations/decorations.asm)
+ const_def 1
+ enum_start
+; FindOwnedBeds.beds values (see engine/overworld/decorations.asm)
const BEDS
- deco FEATHERY_BED ; 2 (0)
- deco PINK_BED ; 3 (1)
- deco POLKADOT_BED ; 4 (2)
- deco PIKACHU_BED ; 5 (3)
-
+ deco FEATHERY_BED
+ deco PINK_BED
+ deco POLKADOT_BED
+ deco PIKACHU_BED
+; FindOwnedCarpets.carpets values (see engine/overworld/decorations.asm)
const CARPETS
- deco RED_CARPET ; 7 (4)
- deco BLUE_CARPET ; 8 (5)
- deco YELLOW_CARPET ; 9 (6)
- deco GREEN_CARPET ; a (7)
-
+ deco RED_CARPET
+ deco BLUE_CARPET
+ deco YELLOW_CARPET
+ deco GREEN_CARPET
+; FindOwnedPlants.plants values (see engine/overworld/decorations.asm)
const PLANTS
- deco MAGNAPLANT ; c (8)
- deco TROPICPLANT ; d (9)
- deco JUMBOPLANT ; e (a)
-
+ deco MAGNAPLANT
+ deco TROPICPLANT
+ deco JUMBOPLANT
+; FindOwnedPosters.posters values (see engine/overworld/decorations.asm)
const POSTERS
- deco TOWN_MAP ; 10 (b)
- deco PIKACHU_POSTER ; 11 (c)
- deco CLEFAIRY_POSTER ; 12 (d)
- deco JIGGLYPUFF_POSTER ; 13(e)
-
+ deco TOWN_MAP
+ deco PIKACHU_POSTER
+ deco CLEFAIRY_POSTER
+ deco JIGGLYPUFF_POSTER
+; FindOwnedConsoles.consoles values (see engine/overworld/decorations.asm)
const CONSOLES
- deco FAMICOM ; 15 (f)
- deco SNES ; 16 (10)
- deco N64 ; 17 (11)
- deco VIRTUAL_BOY ; 18 (12)
-
+ deco FAMICOM
+ deco SNES
+ deco N64
+ deco VIRTUAL_BOY
+; FindOwnedBigDolls.big_dolls values (see engine/overworld/decorations.asm)
const BIG_DOLLS
- deco BIG_SNORLAX_DOLL ; 1a (13)
- deco BIG_ONIX_DOLL ; 1b (14)
- deco BIG_LAPRAS_DOLL ; 1c (15)
-
+ deco BIG_SNORLAX_DOLL
+ deco BIG_ONIX_DOLL
+ deco BIG_LAPRAS_DOLL
+; FindOwnedOrnaments.ornaments values (see engine/overworld/decorations.asm)
const DOLLS
- deco PIKACHU_DOLL ; 1e (16)
- deco SURF_PIKACHU_DOLL ; 1f (17)
- deco CLEFAIRY_DOLL ; 20 (18)
- deco JIGGLYPUFF_DOLL ; 21 (19)
- deco BULBASAUR_DOLL ; 22 (1a)
- deco CHARMANDER_DOLL ; 23 (1b)
- deco SQUIRTLE_DOLL ; 24 (1c)
- deco POLIWAG_DOLL ; 25 (1d)
- deco DIGLETT_DOLL ; 26 (1e)
- deco STARMIE_DOLL ; 27 (1f)
- deco MAGIKARP_DOLL ; 28 (20)
- deco ODDISH_DOLL ; 29 (21)
- deco GENGAR_DOLL ; 2a (22)
- deco SHELLDER_DOLL ; 2b (23)
- deco GRIMER_DOLL ; 2c (24)
- deco VOLTORB_DOLL ; 2d (25)
- deco WEEDLE_DOLL ; 2e (26)
- deco UNOWN_DOLL ; 2f (27)
- deco GEODUDE_DOLL ; 30 (28)
- deco MACHOP_DOLL ; 31 (29)
- deco TENTACOOL_DOLL ; 32 (2a)
- deco GOLD_TROPHY_DOLL ; 33 (2b)
- deco SILVER_TROPHY_DOLL ; 34 (2c)
-
-NUM_NON_TROPHY_DECOS EQU $2b
-NUM_DECOS EQU $2d
+ deco PIKACHU_DOLL
+ deco SURF_PIKACHU_DOLL
+ deco CLEFAIRY_DOLL
+ deco JIGGLYPUFF_DOLL
+ deco BULBASAUR_DOLL
+ deco CHARMANDER_DOLL
+ deco SQUIRTLE_DOLL
+ deco POLIWAG_DOLL
+ deco DIGLETT_DOLL
+ deco STARMIE_DOLL
+ deco MAGIKARP_DOLL
+ deco ODDISH_DOLL
+ deco GENGAR_DOLL
+ deco SHELLDER_DOLL
+ deco GRIMER_DOLL
+ deco VOLTORB_DOLL
+ deco WEEDLE_DOLL
+ deco UNOWN_DOLL
+ deco GEODUDE_DOLL
+ deco MACHOP_DOLL
+ deco TENTACOOL_DOLL
+NUM_NON_TROPHY_DECOS EQU __enum__
+ deco GOLD_TROPHY_DOLL
+ deco SILVER_TROPHY_DOLL
+NUM_DECOS EQU __enum__
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 70b24344..a110855e 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -41,6 +41,8 @@ HP_RED EQU 2
SPRITEOAMSTRUCT_LENGTH EQU const_value
NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM
+SPRITE_GFX_LIST_CAPACITY EQU 12 ; see wUsedSprites
+
; PokeAnims indexes (see engine/gfx/pic_animation.asm)
const_def
const ANIM_MON_SLOW
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index c6df95c8..3e5af01e 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -24,8 +24,6 @@ ENDM
; - attributes (see data/maps/attributes.asm)
; - blocks (see data/maps/blocks.asm)
; - scripts and events (see data/maps/scripts.asm)
-
-; map group ids
const_def
newgroup ; 1
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index 71fe803e..89762da7 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -129,6 +129,4 @@ KANTO_FLYPOINT EQU const_value
const FLY_CINNABAR
const FLY_INDIGO
-; outdoor sprite limits (see engine/overworld/overworld.asm)
-MAX_OUTDOOR_SPRITES EQU 11
-SPRITE_GFX_LIST_CAPACITY EQU 12
+MAX_OUTDOOR_SPRITES EQU 11 ; see engine/overworld/overworld.asm
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
index c877f469..28ea3a17 100644
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -38,7 +38,7 @@
const SCROLLINGMENU_ITEMS_QUANTITY
; MonMenuOptions indexes (see data/mon_menu.asm)
-; used by PokemonActionSubmenu (see engine/menus/start_menu.asm)
+; used by PokemonActionSubmenu (see engine/pokemon/mon_menu.asm)
const_def 1
; moves
const MONMENUITEM_CUT ; 1
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 37cee638..9efd3c55 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -7,9 +7,10 @@ MALE EQU 0
FEMALE EQU 1
; FlagAction arguments (see home/flag.asm)
-RESET_FLAG EQU 0
-SET_FLAG EQU 1
-CHECK_FLAG EQU 2
+ const_def
+ const RESET_FLAG
+ const SET_FLAG
+ const CHECK_FLAG
; G/S version ID: 0 = Gold, 1 = Silver (used by checkver)
IF DEF(_GOLD)
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index 2f39eefc..b26f86d0 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,291 +1,293 @@
-
+; move ids
+; indexes for:
+; - Moves (see data/moves/moves.asm)
+; - MoveNames (see data/moves/names.asm)
+; - MoveDescriptions (see data/moves/descriptions.asm)
+; - BattleAnimations (see data/moves/animations.asm)
const_def
- const NO_MOVE ; $00
- const POUND ; $01
- const KARATE_CHOP ; $02
- const DOUBLESLAP ; $03
- const COMET_PUNCH ; $04
- const MEGA_PUNCH ; $05
- const PAY_DAY ; $06
- const FIRE_PUNCH ; $07
- const ICE_PUNCH ; $08
- const THUNDERPUNCH ; $09
- const SCRATCH ; $0a
- const VICEGRIP ; $0b
- const GUILLOTINE ; $0c
- const RAZOR_WIND ; $0d
- const SWORDS_DANCE ; $0e
- const CUT ; $0f
- const GUST ; $10
- const WING_ATTACK ; $11
- const WHIRLWIND ; $12
- const FLY ; $13
- const BIND ; $14
- const SLAM ; $15
- const VINE_WHIP ; $16
- const STOMP ; $17
- const DOUBLE_KICK ; $18
- const MEGA_KICK ; $19
- const JUMP_KICK ; $1a
- const ROLLING_KICK ; $1b
- const SAND_ATTACK ; $1c
- const HEADBUTT ; $1d
- const HORN_ATTACK ; $1e
- const FURY_ATTACK ; $1f
- const HORN_DRILL ; $20
- const TACKLE ; $21
- const BODY_SLAM ; $22
- const WRAP ; $23
- const TAKE_DOWN ; $24
- const THRASH ; $25
- const DOUBLE_EDGE ; $26
- const TAIL_WHIP ; $27
- const POISON_STING ; $28
- const TWINEEDLE ; $29
- const PIN_MISSILE ; $2a
- const LEER ; $2b
- const BITE ; $2c
- const GROWL ; $2d
- const ROAR ; $2e
- const SING ; $2f
- const SUPERSONIC ; $30
- const SONICBOOM ; $31
- const DISABLE ; $32
- const ACID ; $33
- const EMBER ; $34
- const FLAMETHROWER ; $35
- const MIST ; $36
- const WATER_GUN ; $37
- const HYDRO_PUMP ; $38
- const SURF ; $39
- const ICE_BEAM ; $3a
- const BLIZZARD ; $3b
- const PSYBEAM ; $3c
- const BUBBLEBEAM ; $3d
- const AURORA_BEAM ; $3e
- const HYPER_BEAM ; $3f
- const PECK ; $40
- const DRILL_PECK ; $41
- const SUBMISSION ; $42
- const LOW_KICK ; $43
- const COUNTER ; $44
- const SEISMIC_TOSS ; $45
- const STRENGTH ; $46
- const ABSORB ; $47
- const MEGA_DRAIN ; $48
- const LEECH_SEED ; $49
- const GROWTH ; $4a
- const RAZOR_LEAF ; $4b
- const SOLARBEAM ; $4c
- const POISONPOWDER ; $4d
- const STUN_SPORE ; $4e
- const SLEEP_POWDER ; $4f
- const PETAL_DANCE ; $50
- const STRING_SHOT ; $51
- const DRAGON_RAGE ; $52
- const FIRE_SPIN ; $53
- const THUNDERSHOCK ; $54
- const THUNDERBOLT ; $55
- const THUNDER_WAVE ; $56
- const THUNDER ; $57
- const ROCK_THROW ; $58
- const EARTHQUAKE ; $59
- const FISSURE ; $5a
- const DIG ; $5b
- const TOXIC ; $5c
- const CONFUSION ; $5d
- const PSYCHIC_M ; $5e
- const HYPNOSIS ; $5f
- const MEDITATE ; $60
- const AGILITY ; $61
- const QUICK_ATTACK ; $62
- const RAGE ; $63
- const TELEPORT ; $64
- const NIGHT_SHADE ; $65
- const MIMIC ; $66
- const SCREECH ; $67
- const DOUBLE_TEAM ; $68
- const RECOVER ; $69
- const HARDEN ; $6a
- const MINIMIZE ; $6b
- const SMOKESCREEN ; $6c
- const CONFUSE_RAY ; $6d
- const WITHDRAW ; $6e
- const DEFENSE_CURL ; $6f
- const BARRIER ; $70
- const LIGHT_SCREEN ; $71
- const HAZE ; $72
- const REFLECT ; $73
- const FOCUS_ENERGY ; $74
- const BIDE ; $75
- const METRONOME ; $76
- const MIRROR_MOVE ; $77
- const SELFDESTRUCT ; $78
- const EGG_BOMB ; $79
- const LICK ; $7a
- const SMOG ; $7b
- const SLUDGE ; $7c
- const BONE_CLUB ; $7d
- const FIRE_BLAST ; $7e
- const WATERFALL ; $7f
- const CLAMP ; $80
- const SWIFT ; $81
- const SKULL_BASH ; $82
- const SPIKE_CANNON ; $83
- const CONSTRICT ; $84
- const AMNESIA ; $85
- const KINESIS ; $86
- const SOFTBOILED ; $87
- const HI_JUMP_KICK ; $88
- const GLARE ; $89
- const DREAM_EATER ; $8a
- const POISON_GAS ; $8b
- const BARRAGE ; $8c
- const LEECH_LIFE ; $8d
- const LOVELY_KISS ; $8e
- const SKY_ATTACK ; $8f
- const TRANSFORM ; $90
- const BUBBLE ; $91
- const DIZZY_PUNCH ; $92
- const SPORE ; $93
- const FLASH ; $94
- const PSYWAVE ; $95
- const SPLASH ; $96
- const ACID_ARMOR ; $97
- const CRABHAMMER ; $98
- const EXPLOSION ; $99
- const FURY_SWIPES ; $9a
- const BONEMERANG ; $9b
- const REST ; $9c
- const ROCK_SLIDE ; $9d
- const HYPER_FANG ; $9e
- const SHARPEN ; $9f
- const CONVERSION ; $a0
- const TRI_ATTACK ; $a1
- const SUPER_FANG ; $a2
- const SLASH ; $a3
- const SUBSTITUTE ; $a4
- const STRUGGLE ; $a5
- const SKETCH ; $a6
- const TRIPLE_KICK ; $a7
- const THIEF ; $a8
- const SPIDER_WEB ; $a9
- const MIND_READER ; $aa
- const NIGHTMARE ; $ab
- const FLAME_WHEEL ; $ac
- const SNORE ; $ad
- const CURSE ; $ae
- const FLAIL ; $af
- const CONVERSION2 ; $b0
- const AEROBLAST ; $b1
- const COTTON_SPORE ; $b2
- const REVERSAL ; $b3
- const SPITE ; $b4
- const POWDER_SNOW ; $b5
- const PROTECT ; $b6
- const MACH_PUNCH ; $b7
- const SCARY_FACE ; $b8
- const FAINT_ATTACK ; $b9
- const SWEET_KISS ; $ba
- const BELLY_DRUM ; $bb
- const SLUDGE_BOMB ; $bc
- const MUD_SLAP ; $bd
- const OCTAZOOKA ; $be
- const SPIKES ; $bf
- const ZAP_CANNON ; $c0
- const FORESIGHT ; $c1
- const DESTINY_BOND ; $c2
- const PERISH_SONG ; $c3
- const ICY_WIND ; $c4
- const DETECT ; $c5
- const BONE_RUSH ; $c6
- const LOCK_ON ; $c7
- const OUTRAGE ; $c8
- const SANDSTORM ; $c9
- const GIGA_DRAIN ; $ca
- const ENDURE ; $cb
- const CHARM ; $cc
- const ROLLOUT ; $cd
- const FALSE_SWIPE ; $ce
- const SWAGGER ; $cf
- const MILK_DRINK ; $d0
- const SPARK ; $d1
- const FURY_CUTTER ; $d2
- const STEEL_WING ; $d3
- const MEAN_LOOK ; $d4
- const ATTRACT ; $d5
- const SLEEP_TALK ; $d6
- const HEAL_BELL ; $d7
- const RETURN ; $d8
- const PRESENT ; $d9
- const FRUSTRATION ; $da
- const SAFEGUARD ; $db
- const PAIN_SPLIT ; $dc
- const SACRED_FIRE ; $dd
- const MAGNITUDE ; $de
- const DYNAMICPUNCH ; $df
- const MEGAHORN ; $e0
- const DRAGONBREATH ; $e1
- const BATON_PASS ; $e2
- const ENCORE ; $e3
- const PURSUIT ; $e4
- const RAPID_SPIN ; $e5
- const SWEET_SCENT ; $e6
- const IRON_TAIL ; $e7
- const METAL_CLAW ; $e8
- const VITAL_THROW ; $e9
- const MORNING_SUN ; $ea
- const SYNTHESIS ; $eb
- const MOONLIGHT ; $ec
- const HIDDEN_POWER ; $ed
- const CROSS_CHOP ; $ee
- const TWISTER ; $ef
- const RAIN_DANCE ; $f0
- const SUNNY_DAY ; $f1
- const CRUNCH ; $f2
- const MIRROR_COAT ; $f3
- const PSYCH_UP ; $f4
- const EXTREMESPEED ; $f5
- const ANCIENTPOWER ; $f6
- const SHADOW_BALL ; $f7
- const FUTURE_SIGHT ; $f8
- const ROCK_SMASH ; $f9
- const WHIRLPOOL ; $fa
- const BEAT_UP ; $fb
-
-const_value SET const_value - 1
+ const NO_MOVE ; 00
+ const POUND ; 01
+ const KARATE_CHOP ; 02
+ const DOUBLESLAP ; 03
+ const COMET_PUNCH ; 04
+ const MEGA_PUNCH ; 05
+ const PAY_DAY ; 06
+ const FIRE_PUNCH ; 07
+ const ICE_PUNCH ; 08
+ const THUNDERPUNCH ; 09
+ const SCRATCH ; 0a
+ const VICEGRIP ; 0b
+ const GUILLOTINE ; 0c
+ const RAZOR_WIND ; 0d
+ const SWORDS_DANCE ; 0e
+ const CUT ; 0f
+ const GUST ; 10
+ const WING_ATTACK ; 11
+ const WHIRLWIND ; 12
+ const FLY ; 13
+ const BIND ; 14
+ const SLAM ; 15
+ const VINE_WHIP ; 16
+ const STOMP ; 17
+ const DOUBLE_KICK ; 18
+ const MEGA_KICK ; 19
+ const JUMP_KICK ; 1a
+ const ROLLING_KICK ; 1b
+ const SAND_ATTACK ; 1c
+ const HEADBUTT ; 1d
+ const HORN_ATTACK ; 1e
+ const FURY_ATTACK ; 1f
+ const HORN_DRILL ; 20
+ const TACKLE ; 21
+ const BODY_SLAM ; 22
+ const WRAP ; 23
+ const TAKE_DOWN ; 24
+ const THRASH ; 25
+ const DOUBLE_EDGE ; 26
+ const TAIL_WHIP ; 27
+ const POISON_STING ; 28
+ const TWINEEDLE ; 29
+ const PIN_MISSILE ; 2a
+ const LEER ; 2b
+ const BITE ; 2c
+ const GROWL ; 2d
+ const ROAR ; 2e
+ const SING ; 2f
+ const SUPERSONIC ; 30
+ const SONICBOOM ; 31
+ const DISABLE ; 32
+ const ACID ; 33
+ const EMBER ; 34
+ const FLAMETHROWER ; 35
+ const MIST ; 36
+ const WATER_GUN ; 37
+ const HYDRO_PUMP ; 38
+ const SURF ; 39
+ const ICE_BEAM ; 3a
+ const BLIZZARD ; 3b
+ const PSYBEAM ; 3c
+ const BUBBLEBEAM ; 3d
+ const AURORA_BEAM ; 3e
+ const HYPER_BEAM ; 3f
+ const PECK ; 40
+ const DRILL_PECK ; 41
+ const SUBMISSION ; 42
+ const LOW_KICK ; 43
+ const COUNTER ; 44
+ const SEISMIC_TOSS ; 45
+ const STRENGTH ; 46
+ const ABSORB ; 47
+ const MEGA_DRAIN ; 48
+ const LEECH_SEED ; 49
+ const GROWTH ; 4a
+ const RAZOR_LEAF ; 4b
+ const SOLARBEAM ; 4c
+ const POISONPOWDER ; 4d
+ const STUN_SPORE ; 4e
+ const SLEEP_POWDER ; 4f
+ const PETAL_DANCE ; 50
+ const STRING_SHOT ; 51
+ const DRAGON_RAGE ; 52
+ const FIRE_SPIN ; 53
+ const THUNDERSHOCK ; 54
+ const THUNDERBOLT ; 55
+ const THUNDER_WAVE ; 56
+ const THUNDER ; 57
+ const ROCK_THROW ; 58
+ const EARTHQUAKE ; 59
+ const FISSURE ; 5a
+ const DIG ; 5b
+ const TOXIC ; 5c
+ const CONFUSION ; 5d
+ const PSYCHIC_M ; 5e
+ const HYPNOSIS ; 5f
+ const MEDITATE ; 60
+ const AGILITY ; 61
+ const QUICK_ATTACK ; 62
+ const RAGE ; 63
+ const TELEPORT ; 64
+ const NIGHT_SHADE ; 65
+ const MIMIC ; 66
+ const SCREECH ; 67
+ const DOUBLE_TEAM ; 68
+ const RECOVER ; 69
+ const HARDEN ; 6a
+ const MINIMIZE ; 6b
+ const SMOKESCREEN ; 6c
+ const CONFUSE_RAY ; 6d
+ const WITHDRAW ; 6e
+ const DEFENSE_CURL ; 6f
+ const BARRIER ; 70
+ const LIGHT_SCREEN ; 71
+ const HAZE ; 72
+ const REFLECT ; 73
+ const FOCUS_ENERGY ; 74
+ const BIDE ; 75
+ const METRONOME ; 76
+ const MIRROR_MOVE ; 77
+ const SELFDESTRUCT ; 78
+ const EGG_BOMB ; 79
+ const LICK ; 7a
+ const SMOG ; 7b
+ const SLUDGE ; 7c
+ const BONE_CLUB ; 7d
+ const FIRE_BLAST ; 7e
+ const WATERFALL ; 7f
+ const CLAMP ; 80
+ const SWIFT ; 81
+ const SKULL_BASH ; 82
+ const SPIKE_CANNON ; 83
+ const CONSTRICT ; 84
+ const AMNESIA ; 85
+ const KINESIS ; 86
+ const SOFTBOILED ; 87
+ const HI_JUMP_KICK ; 88
+ const GLARE ; 89
+ const DREAM_EATER ; 8a
+ const POISON_GAS ; 8b
+ const BARRAGE ; 8c
+ const LEECH_LIFE ; 8d
+ const LOVELY_KISS ; 8e
+ const SKY_ATTACK ; 8f
+ const TRANSFORM ; 90
+ const BUBBLE ; 91
+ const DIZZY_PUNCH ; 92
+ const SPORE ; 93
+ const FLASH ; 94
+ const PSYWAVE ; 95
+ const SPLASH ; 96
+ const ACID_ARMOR ; 97
+ const CRABHAMMER ; 98
+ const EXPLOSION ; 99
+ const FURY_SWIPES ; 9a
+ const BONEMERANG ; 9b
+ const REST ; 9c
+ const ROCK_SLIDE ; 9d
+ const HYPER_FANG ; 9e
+ const SHARPEN ; 9f
+ const CONVERSION ; a0
+ const TRI_ATTACK ; a1
+ const SUPER_FANG ; a2
+ const SLASH ; a3
+ const SUBSTITUTE ; a4
+ const STRUGGLE ; a5
+ const SKETCH ; a6
+ const TRIPLE_KICK ; a7
+ const THIEF ; a8
+ const SPIDER_WEB ; a9
+ const MIND_READER ; aa
+ const NIGHTMARE ; ab
+ const FLAME_WHEEL ; ac
+ const SNORE ; ad
+ const CURSE ; ae
+ const FLAIL ; af
+ const CONVERSION2 ; b0
+ const AEROBLAST ; b1
+ const COTTON_SPORE ; b2
+ const REVERSAL ; b3
+ const SPITE ; b4
+ const POWDER_SNOW ; b5
+ const PROTECT ; b6
+ const MACH_PUNCH ; b7
+ const SCARY_FACE ; b8
+ const FAINT_ATTACK ; b9
+ const SWEET_KISS ; ba
+ const BELLY_DRUM ; bb
+ const SLUDGE_BOMB ; bc
+ const MUD_SLAP ; bd
+ const OCTAZOOKA ; be
+ const SPIKES ; bf
+ const ZAP_CANNON ; c0
+ const FORESIGHT ; c1
+ const DESTINY_BOND ; c2
+ const PERISH_SONG ; c3
+ const ICY_WIND ; c4
+ const DETECT ; c5
+ const BONE_RUSH ; c6
+ const LOCK_ON ; c7
+ const OUTRAGE ; c8
+ const SANDSTORM ; c9
+ const GIGA_DRAIN ; ca
+ const ENDURE ; cb
+ const CHARM ; cc
+ const ROLLOUT ; cd
+ const FALSE_SWIPE ; ce
+ const SWAGGER ; cf
+ const MILK_DRINK ; d0
+ const SPARK ; d1
+ const FURY_CUTTER ; d2
+ const STEEL_WING ; d3
+ const MEAN_LOOK ; d4
+ const ATTRACT ; d5
+ const SLEEP_TALK ; d6
+ const HEAL_BELL ; d7
+ const RETURN ; d8
+ const PRESENT ; d9
+ const FRUSTRATION ; da
+ const SAFEGUARD ; db
+ const PAIN_SPLIT ; dc
+ const SACRED_FIRE ; dd
+ const MAGNITUDE ; de
+ const DYNAMICPUNCH ; df
+ const MEGAHORN ; e0
+ const DRAGONBREATH ; e1
+ const BATON_PASS ; e2
+ const ENCORE ; e3
+ const PURSUIT ; e4
+ const RAPID_SPIN ; e5
+ const SWEET_SCENT ; e6
+ const IRON_TAIL ; e7
+ const METAL_CLAW ; e8
+ const VITAL_THROW ; e9
+ const MORNING_SUN ; ea
+ const SYNTHESIS ; eb
+ const MOONLIGHT ; ec
+ const HIDDEN_POWER ; ed
+ const CROSS_CHOP ; ee
+ const TWISTER ; ef
+ const RAIN_DANCE ; f0
+ const SUNNY_DAY ; f1
+ const CRUNCH ; f2
+ const MIRROR_COAT ; f3
+ const PSYCH_UP ; f4
+ const EXTREMESPEED ; f5
+ const ANCIENTPOWER ; f6
+ const SHADOW_BALL ; f7
+ const FUTURE_SIGHT ; f8
+ const ROCK_SMASH ; f9
+ const WHIRLPOOL ; fa
+ const BEAT_UP ; fb
+NUM_ATTACKS EQU const_value - 1
- const NUM_ATTACKS ; $fb
+ const MOVE_OR_ANIM_FC ; fc
+ const MOVE_OR_ANIM_FD ; fd
+ const MOVE_OR_ANIM_FE ; fe
-; Battle animations use the same constants
-; as the moves up to this point.
- const ANIM_FC ; $fc
- const ANIM_FD ; $fd
- const ANIM_FE ; $fe
- const ANIM_SWEET_SCENT_2 ; $ff
- const ANIM_THROW_POKE_BALL ; $100
- const ANIM_SEND_OUT_MON ; $101
- const ANIM_RETURN_MON ; $102
- const ANIM_CONFUSED ; $103
- const ANIM_SLP ; $104
- const ANIM_BRN ; $105
- const ANIM_PSN ; $106
- const ANIM_SAP ; $107
- const ANIM_FRZ ; $108
- const ANIM_PAR ; $109
- const ANIM_IN_LOVE ; $10a
- const ANIM_IN_SANDSTORM ; $10b
- const ANIM_IN_NIGHTMARE ; $10c
- const ANIM_IN_WHIRLPOOL ; $10d
+; Battle animations use the same constants as the moves up to this point
+ const ANIM_SWEET_SCENT_2 ; ff
+ const ANIM_THROW_POKE_BALL ; 100
+ const ANIM_SEND_OUT_MON ; 101
+ const ANIM_RETURN_MON ; 102
+ const ANIM_CONFUSED ; 103
+ const ANIM_SLP ; 104
+ const ANIM_BRN ; 105
+ const ANIM_PSN ; 106
+ const ANIM_SAP ; 107
+ const ANIM_FRZ ; 108
+ const ANIM_PAR ; 109
+ const ANIM_IN_LOVE ; 10a
+ const ANIM_IN_SANDSTORM ; 10b
+ const ANIM_IN_NIGHTMARE ; 10c
+ const ANIM_IN_WHIRLPOOL ; 10d
; battle anims
- const ANIM_MISS ; $10e
- const ANIM_ENEMY_DAMAGE ; $10f
- const ANIM_ENEMY_STAT_DOWN ; $110
- const ANIM_PLAYER_STAT_DOWN ; $111
- const ANIM_PLAYER_DAMAGE ; $112
- const ANIM_WOBBLE ; $113
- const ANIM_SHAKE ; $114
- const ANIM_HIT_CONFUSION ; $115
+ const ANIM_MISS ; 10e
+ const ANIM_ENEMY_DAMAGE ; 10f
+ const ANIM_ENEMY_STAT_DOWN ; 110
+ const ANIM_PLAYER_STAT_DOWN ; 111
+ const ANIM_PLAYER_DAMAGE ; 112
+ const ANIM_WOBBLE ; 113
+ const ANIM_SHAKE ; 114
+ const ANIM_HIT_CONFUSION ; 115
; wNumHits uses offsets from ANIM_MISS
const_def
diff --git a/constants/music_constants.asm b/constants/music_constants.asm
index 2c46d106..d225787c 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,3 +1,5 @@
+; song ids
+; Music indexes (see audio/music_pointers.asm)
const_def
const MUSIC_NONE ; 00
@@ -94,6 +96,7 @@
const MUSIC_PRINTER ; 5b
const MUSIC_POST_CREDITS ; 5c
+; GetMapMusic picks music for this value (see home/map.asm)
MUSIC_MAHOGANY_MART EQU $64
; ExitPokegearRadio_HandleMusic uses these values
diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm
index 1718e892..2483d9df 100644
--- a/constants/phone_constants.asm
+++ b/constants/phone_constants.asm
@@ -1,4 +1,4 @@
-
+; PhoneContacts indexes (see data/phone/phone_contacts.asm)
const_def
const PHONE_00
const PHONE_MOM
@@ -37,8 +37,8 @@
const PHONE_BLACKBELT_KENJI
const PHONE_HIKER_PARRY
const PHONE_PICNICKER_ERIN
- const PHONE_BUENA
+; SpecialPhoneCallList indexes (see data/phone/special_calls.asm)
const_def
const SPECIALCALL_NONE
const SPECIALCALL_POKERUS
@@ -50,6 +50,7 @@
const SPECIALCALL_WORRIED
const SPECIALCALL_MASTERBALL
+; phone struct members
const_def
const PHONE_CONTACT_TRAINER_CLASS
const PHONE_CONTACT_TRAINER_NUMBER
@@ -64,4 +65,6 @@
const PHONE_CONTACT_SCRIPT2_ADDR_LO
const PHONE_CONTACT_SCRIPT2_ADDR_HI
PHONE_CONTACT_SIZE EQU const_value
+
+; maximum number of pokegear contacts
CONTACT_LIST_SIZE EQU 10
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 58aa684a..2f0ce2c7 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -306,61 +306,3 @@ NUM_POKEMON EQU const_value - 1
const UNOWN_Y ; 25
const UNOWN_Z ; 26
NUM_UNOWN EQU const_value - 1 ; 26
-
-; pokemon structure in RAM
-MON_SPECIES EQUS "(wPartyMon1Species - wPartyMon1)"
-MON_ITEM EQUS "(wPartyMon1Item - wPartyMon1)"
-MON_MOVES EQUS "(wPartyMon1Moves - wPartyMon1)"
-MON_ID EQUS "(wPartyMon1ID - wPartyMon1)"
-MON_EXP EQUS "(wPartyMon1Exp - wPartyMon1)"
-MON_STAT_EXP EQUS "(wPartyMon1StatExp - wPartyMon1)"
-MON_HP_EXP EQUS "(wPartyMon1HPExp - wPartyMon1)"
-MON_ATK_EXP EQUS "(wPartyMon1AtkExp - wPartyMon1)"
-MON_DEF_EXP EQUS "(wPartyMon1DefExp - wPartyMon1)"
-MON_SPD_EXP EQUS "(wPartyMon1SpdExp - wPartyMon1)"
-MON_SPC_EXP EQUS "(wPartyMon1SpcExp - wPartyMon1)"
-MON_DVS EQUS "(wPartyMon1DVs - wPartyMon1)"
-MON_PP EQUS "(wPartyMon1PP - wPartyMon1)"
-MON_HAPPINESS EQUS "(wPartyMon1Happiness - wPartyMon1)"
-MON_PKRUS EQUS "(wPartyMon1PokerusStatus - wPartyMon1)"
-MON_CAUGHTDATA EQUS "(wPartyMon1CaughtData - wPartyMon1)"
-MON_CAUGHTLEVEL EQUS "(wPartyMon1CaughtLevel - wPartyMon1)"
-MON_CAUGHTTIME EQUS "(wPartyMon1CaughtTime - wPartyMon1)"
-MON_CAUGHTGENDER EQUS "(wPartyMon1CaughtGender - wPartyMon1)"
-MON_CAUGHTLOCATION EQUS "(wPartyMon1CaughtLocation - wPartyMon1)"
-MON_LEVEL EQUS "(wPartyMon1Level - wPartyMon1)"
-MON_STATUS EQUS "(wPartyMon1Status - wPartyMon1)"
-MON_HP EQUS "(wPartyMon1HP - wPartyMon1)"
-MON_MAXHP EQUS "(wPartyMon1MaxHP - wPartyMon1)"
-MON_ATK EQUS "(wPartyMon1Attack - wPartyMon1)"
-MON_DEF EQUS "(wPartyMon1Defense - wPartyMon1)"
-MON_SPD EQUS "(wPartyMon1Speed - wPartyMon1)"
-MON_SAT EQUS "(wPartyMon1SpclAtk - wPartyMon1)"
-MON_SDF EQUS "(wPartyMon1SpclDef - wPartyMon1)"
-BOXMON_STRUCT_LENGTH EQUS "(wPartyMon1End - wPartyMon1)"
-PARTYMON_STRUCT_LENGTH EQUS "(wPartyMon1StatsEnd - wPartyMon1)"
-REDMON_STRUCT_LENGTH EQU 44
-
-const_value SET 1
- 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
-
- 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
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 83d5d7b6..da0008b1 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -27,11 +27,11 @@ BASE_TMHM EQUS "(wBaseTMHM - wCurBaseData)"
BASE_DATA_SIZE EQUS "(wCurBaseDataEnd - wCurBaseData)"
; gender ratio constants
-GENDER_F0 EQU 0 percent
-GENDER_F12_5 EQU 12 percent + 1
-GENDER_F25 EQU 25 percent
-GENDER_F50 EQU 50 percent
-GENDER_F75 EQU 75 percent
+GENDER_F0 EQU 0 percent
+GENDER_F12_5 EQU 12 percent + 1
+GENDER_F25 EQU 25 percent
+GENDER_F50 EQU 50 percent
+GENDER_F75 EQU 75 percent
GENDER_F100 EQU 100 percent - 1
GENDER_UNKNOWN EQU -1
@@ -63,6 +63,45 @@ GENDER_UNKNOWN EQU -1
const EGG_DRAGON ; e
const EGG_NONE ; f (Undiscovered)
+; pokedex entries (see data/pokemon/dex_entries.asm)
+NUM_DEX_ENTRY_BANKS EQU 4
+
+; party_struct members (see macros/wram.asm)
+MON_SPECIES EQUS "(wPartyMon1Species - wPartyMon1)"
+MON_ITEM EQUS "(wPartyMon1Item - wPartyMon1)"
+MON_MOVES EQUS "(wPartyMon1Moves - wPartyMon1)"
+MON_ID EQUS "(wPartyMon1ID - wPartyMon1)"
+MON_EXP EQUS "(wPartyMon1Exp - wPartyMon1)"
+MON_STAT_EXP EQUS "(wPartyMon1StatExp - wPartyMon1)"
+MON_HP_EXP EQUS "(wPartyMon1HPExp - wPartyMon1)"
+MON_ATK_EXP EQUS "(wPartyMon1AtkExp - wPartyMon1)"
+MON_DEF_EXP EQUS "(wPartyMon1DefExp - wPartyMon1)"
+MON_SPD_EXP EQUS "(wPartyMon1SpdExp - wPartyMon1)"
+MON_SPC_EXP EQUS "(wPartyMon1SpcExp - wPartyMon1)"
+MON_DVS EQUS "(wPartyMon1DVs - wPartyMon1)"
+MON_PP EQUS "(wPartyMon1PP - wPartyMon1)"
+MON_HAPPINESS EQUS "(wPartyMon1Happiness - wPartyMon1)"
+MON_PKRUS EQUS "(wPartyMon1PokerusStatus - wPartyMon1)"
+MON_CAUGHTDATA EQUS "(wPartyMon1CaughtData - wPartyMon1)"
+MON_CAUGHTLEVEL EQUS "(wPartyMon1CaughtLevel - wPartyMon1)"
+MON_CAUGHTTIME EQUS "(wPartyMon1CaughtTime - wPartyMon1)"
+MON_CAUGHTGENDER EQUS "(wPartyMon1CaughtGender - wPartyMon1)"
+MON_CAUGHTLOCATION EQUS "(wPartyMon1CaughtLocation - wPartyMon1)"
+MON_LEVEL EQUS "(wPartyMon1Level - wPartyMon1)"
+MON_STATUS EQUS "(wPartyMon1Status - wPartyMon1)"
+MON_HP EQUS "(wPartyMon1HP - wPartyMon1)"
+MON_MAXHP EQUS "(wPartyMon1MaxHP - wPartyMon1)"
+MON_ATK EQUS "(wPartyMon1Attack - wPartyMon1)"
+MON_DEF EQUS "(wPartyMon1Defense - wPartyMon1)"
+MON_SPD EQUS "(wPartyMon1Speed - wPartyMon1)"
+MON_SAT EQUS "(wPartyMon1SpclAtk - wPartyMon1)"
+MON_SDF EQUS "(wPartyMon1SpclDef - wPartyMon1)"
+BOXMON_STRUCT_LENGTH EQUS "(wPartyMon1End - wPartyMon1)"
+PARTYMON_STRUCT_LENGTH EQUS "(wPartyMon1StatsEnd - wPartyMon1)"
+
+NICKNAMED_MON_STRUCT_LENGTH EQUS "(PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH)"
+REDMON_STRUCT_LENGTH EQU 44
+
; maximum number of party pokemon
PARTY_LENGTH EQU 6
diff --git a/constants/printer_constants.asm b/constants/printer_constants.asm
index 5cd8fcd7..f0b8b481 100755
--- a/constants/printer_constants.asm
+++ b/constants/printer_constants.asm
@@ -1,5 +1,5 @@
-const_value SET 1
-
+; wPrinterStatus
+ const_def 1
const PRINTER_STATUS_CHECKING
const PRINTER_STATUS_TRANSMITTING
const PRINTER_STATUS_PRINTING
diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm
index b1c2c287..e9b54176 100644
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -1,77 +1,84 @@
+; radio channel ids
+; indexes for:
+; - RadioChannelSongs (see data/radio/channel_music.asm)
+; - PlayRadioShow/RadioJumptable (see engine/pokegear/radio.asm)
+; - RadioChannels (see engine/pokegear/pokegear.asm)
const_def
- const OAKS_POKEMON_TALK ; $00
- const POKEDEX_SHOW ; $01
- const POKEMON_MUSIC ; $02
- const LUCKY_CHANNEL ; $03
- const PLACES_AND_PEOPLE ; $04
- const LETS_ALL_SING ; $05
- const ROCKET_RADIO ; $06
- const POKE_FLUTE_RADIO ; $07
- const UNOWN_RADIO ; $08
- const EVOLUTION_RADIO ; $09
- const OAKS_POKEMON_TALK_2 ; $0a
- const OAKS_POKEMON_TALK_3 ; $0b
- const OAKS_POKEMON_TALK_4 ; $0c
- const OAKS_POKEMON_TALK_5 ; $0d
- const OAKS_POKEMON_TALK_6 ; $0e
- const OAKS_POKEMON_TALK_7 ; $0f
- const OAKS_POKEMON_TALK_8 ; $10
- const OAKS_POKEMON_TALK_9 ; $11
- const POKEDEX_SHOW_2 ; $12
- const POKEDEX_SHOW_3 ; $13
- const POKEDEX_SHOW_4 ; $14
- const POKEDEX_SHOW_5 ; $15
- const POKEMON_MUSIC_2 ; $16
- const POKEMON_MUSIC_3 ; $17
- const POKEMON_MUSIC_4 ; $18
- const POKEMON_MUSIC_5 ; $19
- const POKEMON_MUSIC_6 ; $1a
- const POKEMON_MUSIC_7 ; $1b
- const LETS_ALL_SING_2 ; $1c
- const LUCKY_NUMBER_SHOW_2 ; $1d
- const LUCKY_NUMBER_SHOW_3 ; $1e
- const LUCKY_NUMBER_SHOW_4 ; $1f
- const LUCKY_NUMBER_SHOW_5 ; $20
- const LUCKY_NUMBER_SHOW_6 ; $21
- const LUCKY_NUMBER_SHOW_7 ; $22
- const LUCKY_NUMBER_SHOW_8 ; $23
- const LUCKY_NUMBER_SHOW_9 ; $24
- const LUCKY_NUMBER_SHOW_10 ; $25
- const LUCKY_NUMBER_SHOW_11 ; $26
- const LUCKY_NUMBER_SHOW_12 ; $27
- const LUCKY_NUMBER_SHOW_13 ; $28
- const LUCKY_NUMBER_SHOW_14 ; $29
- const LUCKY_NUMBER_SHOW_15 ; $2a
- const PLACES_AND_PEOPLE_2 ; $2b
- const PLACES_AND_PEOPLE_3 ; $2c
- const PLACES_AND_PEOPLE_4 ; $2d
- const PLACES_AND_PEOPLE_5 ; $2e
- const PLACES_AND_PEOPLE_6 ; $2f
- const PLACES_AND_PEOPLE_7 ; $30
- const ROCKET_RADIO_2 ; $31
- const ROCKET_RADIO_3 ; $32
- const ROCKET_RADIO_4 ; $33
- const ROCKET_RADIO_5 ; $34
- const ROCKET_RADIO_6 ; $35
- const ROCKET_RADIO_7 ; $36
- const ROCKET_RADIO_8 ; $37
- const ROCKET_RADIO_9 ; $38
- const ROCKET_RADIO_10 ; $39
- const OAKS_POKEMON_TALK_10 ; $3a
- const OAKS_POKEMON_TALK_11 ; $3b
- const OAKS_POKEMON_TALK_12 ; $3c
- const OAKS_POKEMON_TALK_13 ; $3d
- const OAKS_POKEMON_TALK_14 ; $3e
- const RADIO_SCROLL ; $3f
- const POKEDEX_SHOW_6 ; $40
- const POKEDEX_SHOW_7 ; $41
- const POKEDEX_SHOW_8 ; $42
+ const OAKS_POKEMON_TALK ; 00
+ const POKEDEX_SHOW ; 01
+ const POKEMON_MUSIC ; 02
+ const LUCKY_CHANNEL ; 03
+ const PLACES_AND_PEOPLE ; 04
+ const LETS_ALL_SING ; 05
+ const ROCKET_RADIO ; 06
+ const POKE_FLUTE_RADIO ; 07
+ const UNOWN_RADIO ; 08
+ const EVOLUTION_RADIO ; 09
+; internal indexes for channel segments
+ const OAKS_POKEMON_TALK_2 ; 0a
+ const OAKS_POKEMON_TALK_3 ; 0b
+ const OAKS_POKEMON_TALK_4 ; 0c
+ const OAKS_POKEMON_TALK_5 ; 0d
+ const OAKS_POKEMON_TALK_6 ; 0e
+ const OAKS_POKEMON_TALK_7 ; 0f
+ const OAKS_POKEMON_TALK_8 ; 10
+ const OAKS_POKEMON_TALK_9 ; 11
+ const POKEDEX_SHOW_2 ; 12
+ const POKEDEX_SHOW_3 ; 13
+ const POKEDEX_SHOW_4 ; 14
+ const POKEDEX_SHOW_5 ; 15
+ const POKEMON_MUSIC_2 ; 16
+ const POKEMON_MUSIC_3 ; 17
+ const POKEMON_MUSIC_4 ; 18
+ const POKEMON_MUSIC_5 ; 19
+ const POKEMON_MUSIC_6 ; 1a
+ const POKEMON_MUSIC_7 ; 1b
+ const LETS_ALL_SING_2 ; 1c
+ const LUCKY_NUMBER_SHOW_2 ; 1d
+ const LUCKY_NUMBER_SHOW_3 ; 1e
+ const LUCKY_NUMBER_SHOW_4 ; 1f
+ const LUCKY_NUMBER_SHOW_5 ; 20
+ const LUCKY_NUMBER_SHOW_6 ; 21
+ const LUCKY_NUMBER_SHOW_7 ; 22
+ const LUCKY_NUMBER_SHOW_8 ; 23
+ const LUCKY_NUMBER_SHOW_9 ; 24
+ const LUCKY_NUMBER_SHOW_10 ; 25
+ const LUCKY_NUMBER_SHOW_11 ; 26
+ const LUCKY_NUMBER_SHOW_12 ; 27
+ const LUCKY_NUMBER_SHOW_13 ; 28
+ const LUCKY_NUMBER_SHOW_14 ; 29
+ const LUCKY_NUMBER_SHOW_15 ; 2a
+ const PLACES_AND_PEOPLE_2 ; 2b
+ const PLACES_AND_PEOPLE_3 ; 2c
+ const PLACES_AND_PEOPLE_4 ; 2d
+ const PLACES_AND_PEOPLE_5 ; 2e
+ const PLACES_AND_PEOPLE_6 ; 2f
+ const PLACES_AND_PEOPLE_7 ; 30
+ const ROCKET_RADIO_2 ; 31
+ const ROCKET_RADIO_3 ; 32
+ const ROCKET_RADIO_4 ; 33
+ const ROCKET_RADIO_5 ; 34
+ const ROCKET_RADIO_6 ; 35
+ const ROCKET_RADIO_7 ; 36
+ const ROCKET_RADIO_8 ; 37
+ const ROCKET_RADIO_9 ; 38
+ const ROCKET_RADIO_10 ; 39
+ const OAKS_POKEMON_TALK_10 ; 3a
+ const OAKS_POKEMON_TALK_11 ; 3b
+ const OAKS_POKEMON_TALK_12 ; 3c
+ const OAKS_POKEMON_TALK_13 ; 3d
+ const OAKS_POKEMON_TALK_14 ; 3e
+ const RADIO_SCROLL ; 3f
+ const POKEDEX_SHOW_6 ; 40
+ const POKEDEX_SHOW_7 ; 41
+ const POKEDEX_SHOW_8 ; 42
+; PlayRadio.StationPointers indexes (see engine/pokegear/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
- const MAPRADIO_OAKS_MON_TALK
+ const MAPRADIO_OAKS_POKEMON_TALK
const MAPRADIO_POKEDEX_SHOW
- const MAPRADIO_PKMN_MUSIC
+ const MAPRADIO_POKEMON_MUSIC
const MAPRADIO_LUCKY_CHANNEL
const MAPRADIO_UNOWN
const MAPRADIO_PLACES_PEOPLE
diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm
index 878e2cf4..4f9e8488 100644
--- a/constants/scgb_constants.asm
+++ b/constants/scgb_constants.asm
@@ -1,3 +1,4 @@
+; GetSGBLayout arguments (see engine/gfx/cgb_layouts.asm and engine/gfx/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
@@ -5,20 +6,20 @@
const SCGB_STATS_SCREEN_HP_PALS
const SCGB_POKEDEX
const SCGB_SLOT_MACHINE
- const SCGB_06
- const SCGB_07
+ const SCGB_BETA_TITLE_SCREEN
+ const SCGB_GS_INTRO
const SCGB_DIPLOMA
const SCGB_MAPPALS
const SCGB_PARTY_MENU
const SCGB_EVOLUTION
- const SCGB_0C
+ const SCGB_GS_TITLE_SCREEN
const SCGB_0D
const SCGB_MOVE_LIST
- const SCGB_0F
+ const SCGB_BETA_PIKACHU_MINIGAME
const SCGB_POKEDEX_SEARCH_OPTION
- const SCGB_11
+ const SCGB_BETA_POKER
const SCGB_POKEPIC
- const SCGB_13
+ const SCGB_MAGNET_TRAIN
const SCGB_PACKPALS
const SCGB_TRAINER_CARD
const SCGB_POKEDEX_UNOWN_MODE
@@ -30,6 +31,10 @@
const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
const SCGB_MYSTERY_GIFT
const SCGB_1E
+ const SCGB_1F
+
+SCGB_PARTY_MENU_HP_PALS EQU -4
+SCGB_RAM EQU -1
; PredefPals indexes (see gfx/sgb/predef.pal)
; GetPredefPal arguments (see engine/gfx/color.asm)
@@ -143,6 +148,4 @@
const SGB_MASK_EN
const SGB_OBJ_TRN
-SCGB_PARTY_MENU_HP_PALS EQU -4
-SCGB_RAM EQU -1
PALPACKET_LENGTH EQU $10
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index de59a7ee..e850d4fe 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -40,7 +40,7 @@ NUM_STRING_BUFFERS EQU const_value
const TRAINERTEXT_WIN
const TRAINERTEXT_LOSS
-; writecode/checkcode arguments
+; readvar/writevar/loadvar arguments
; _GetVarAction.VarActionTable indexes (see engine/overworld/variables.asm)
const_def
const VAR_STRINGBUFFER2 ; 00
@@ -72,7 +72,7 @@ RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
; PlayerEventScriptPointers indexes (see engine/overworld/events.asm)
-const_value SET -1
+ const_def -1
const PLAYEREVENT_MAPSCRIPT
const PLAYEREVENT_NONE
const PLAYEREVENT_SEENBYTRAINER
@@ -262,14 +262,14 @@ NUM_FRUIT_TREES EQU const_value - 1
const BUGCONTEST_BOXED_MON ; 1
const BUGCONTEST_NO_CATCH ; 2
-; HealMachineAnim writebyte arguments
+; HealMachineAnim setval arguments
; HealMachineAnim.Pointers indexes (see engine/events/heal_machine_anim.asm)
const_def
const HEALMACHINE_POKECENTER ; 0
const HEALMACHINE_ELMS_LAB ; 1
const HEALMACHINE_HALL_OF_FAME ; 2
-; UnownPuzzle writebyte arguments
+; UnownPuzzle setval arguments
; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/games/unown_puzzle.asm)
const_def
const UNOWNPUZZLE_KABUTO ; 0
diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm
index 5a59ceec..be11bd3e 100644
--- a/constants/serial_constants.asm
+++ b/constants/serial_constants.asm
@@ -1,4 +1,4 @@
-; link types
+; wLinkMode
const_def
const LINK_NULL ; 0
const LINK_TIMECAPSULE ; 1
diff --git a/constants/sfx_constants.asm b/constants/sfx_constants.asm
index ccca4e5d..0cecccf4 100644
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -1,3 +1,4 @@
+; SFX indexes (see audio/sfx_pointers.asm)
const_def
const SFX_DEX_FANFARE_50_79 ; 00
@@ -188,5 +189,3 @@
const SFX_TRAIN_ARRIVED ; b9
const SFX_STOP_SLOT ; ba
const SFX_2_BOOPS ; bb
- const SFX_GLASS_TING ; bc
- const SFX_GLASS_TING_2 ; bd
diff --git a/constants/std_constants.asm b/constants/std_constants.asm
index 9cfcbc8a..352c93cb 100644
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -1,3 +1,5 @@
+; StdScripts indexes (see engine/events/std_scripts.asm)
+; also used in TileCollisionStdScripts (see data/events/collision_stdscripts.asm)
enum_start
enum pokecenternurse
enum difficultbookshelf
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
index f1c3a0bf..dbe06a36 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -44,3 +44,6 @@ PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
; character sets (see charmap.asm)
FIRST_REGULAR_TEXT_CHAR EQU $60
FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
+
+; gfx/font/unown_font.png
+FIRST_UNOWN_CHAR EQU $40
diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm
index 3d68dba4..e02393cb 100644
--- a/constants/tileset_constants.asm
+++ b/constants/tileset_constants.asm
@@ -1,4 +1,4 @@
-const_value SET 1
+; Tilesets indexes (see data/tilesets.asm)
const_def 1
const TILESET_JOHTO ; 01
const TILESET_JOHTO_MODERN ; 02
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index a56a59aa..da50cd5d 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -80,14 +80,16 @@ RIGHT_MASK EQU 1 << RIGHT
; wFacingDirection:: ; cf2f
FACE_CURRENT EQU 0
-FACE_DOWN EQU 8
-FACE_UP EQU 4
-FACE_LEFT EQU 2
-FACE_RIGHT EQU 1
+FACE_DOWN EQU 8
+FACE_UP EQU 4
+FACE_LEFT EQU 2
+FACE_RIGHT EQU 1
; wPokemonWithdrawDepositParameter:: ; d008
-PC_WITHDRAW EQU 0
-PC_DEPOSIT EQU 1
+PC_WITHDRAW EQU 0
+PC_DEPOSIT EQU 1
+REMOVE_PARTY EQU 0
+REMOVE_BOX EQU 1
DAY_CARE_WITHDRAW EQU 2
DAY_CARE_DEPOSIT EQU 3
@@ -151,7 +153,7 @@ SCRIPT_RUNNING EQU 2
; wSpawnAfterChampion::
SPAWN_LANCE EQU 1
-SPAWN_RED EQU 2
+SPAWN_RED EQU 2
; wCurDay:: ; d1f2
const_def
@@ -278,5 +280,5 @@ DAYCAREMAN_HAS_EGG_F EQU 6
; wDayCareLady:: ; dc77
DAYCARELADY_HAS_MON_F EQU 0
-; used with both wDayCareMan and wDayCareLady
+; shared flag between wDayCareMan and wDayCareLady
DAYCARE_INTRO_SEEN_F EQU 7
diff --git a/data/battle/critical_hit_chances.asm b/data/battle/critical_hit_chances.asm
index 0128f1a1..bb1ce9ab 100644
--- a/data/battle/critical_hit_chances.asm
+++ b/data/battle/critical_hit_chances.asm
@@ -1,8 +1,8 @@
CriticalHitChances:
- db 7 percent ; 0
- db 12 percent + 2 ; +1
- db 25 percent + 1 ; +2
- db 33 percent + 1 ; +3
- db 50 percent + 1 ; +4
- db 50 percent + 1 ; +5
- db 50 percent + 1 ; +6
+ db 1 out_of 15 ; 0
+ db 1 out_of 8 ; +1
+ db 1 out_of 4 ; +2
+ db 1 out_of 3 ; +3
+ db 1 out_of 2 ; +4
+ db 1 out_of 2 ; +5
+ db 1 out_of 2 ; +6
diff --git a/data/collision_permissions.asm b/data/collision_permissions.asm
index 82ebb770..93cf5509 100755
--- a/data/collision_permissions.asm
+++ b/data/collision_permissions.asm
@@ -3,54 +3,54 @@ TALKABLE EQUS "db TALK +"
TileCollisionTable::
; entries correspond to COLL_* constants
- NONTALKABLE LANDTILE ; COLL_FLOOR
- NONTALKABLE LANDTILE ; COLL_01
- NONTALKABLE LANDTILE ; 02
- NONTALKABLE LANDTILE ; COLL_03
- NONTALKABLE LANDTILE ; COLL_04
- NONTALKABLE LANDTILE ; 05
- NONTALKABLE LANDTILE ; 06
- NONTALKABLE WALLTILE ; COLL_WALL
- NONTALKABLE LANDTILE ; COLL_CUT_08
- NONTALKABLE LANDTILE ; 09
- NONTALKABLE LANDTILE ; 0a
- NONTALKABLE LANDTILE ; 0b
- NONTALKABLE LANDTILE ; 0c
- NONTALKABLE LANDTILE ; 0d
- NONTALKABLE LANDTILE ; 0e
- NONTALKABLE WALLTILE ; 0f
- NONTALKABLE LANDTILE ; COLL_TALL_GRASS_10
- NONTALKABLE LANDTILE ; 11
- TALKABLE WALLTILE ; COLL_CUT_TREE
- NONTALKABLE LANDTILE ; 13
- NONTALKABLE LANDTILE ; COLL_LONG_GRASS
- TALKABLE WALLTILE ; COLL_HEADBUTT_TREE
- NONTALKABLE LANDTILE ; 16
- NONTALKABLE LANDTILE ; 17
- NONTALKABLE LANDTILE ; COLL_TALL_GRASS
- NONTALKABLE LANDTILE ; 19
- TALKABLE WALLTILE ; COLL_CUT_TREE_1A
- NONTALKABLE LANDTILE ; 1b
- NONTALKABLE LANDTILE ; COLL_LONG_GRASS_1C
- TALKABLE WALLTILE ; COLL_HEADBUTT_TREE_1D
- NONTALKABLE LANDTILE ; 1e
- NONTALKABLE LANDTILE ; 1f
+ NONTALKABLE LAND_TILE ; COLL_FLOOR
+ NONTALKABLE LAND_TILE ; COLL_01
+ NONTALKABLE LAND_TILE ; 02
+ NONTALKABLE LAND_TILE ; COLL_03
+ NONTALKABLE LAND_TILE ; COLL_04
+ NONTALKABLE LAND_TILE ; 05
+ NONTALKABLE LAND_TILE ; 06
+ NONTALKABLE WALL_TILE ; COLL_WALL
+ NONTALKABLE LAND_TILE ; COLL_CUT_08
+ NONTALKABLE LAND_TILE ; 09
+ NONTALKABLE LAND_TILE ; 0a
+ NONTALKABLE LAND_TILE ; 0b
+ NONTALKABLE LAND_TILE ; 0c
+ NONTALKABLE LAND_TILE ; 0d
+ NONTALKABLE LAND_TILE ; 0e
+ NONTALKABLE WALL_TILE ; 0f
+ NONTALKABLE LAND_TILE ; COLL_TALL_GRASS_10
+ NONTALKABLE LAND_TILE ; 11
+ TALKABLE WALL_TILE ; COLL_CUT_TREE
+ NONTALKABLE LAND_TILE ; 13
+ NONTALKABLE LAND_TILE ; COLL_LONG_GRASS
+ TALKABLE WALL_TILE ; COLL_HEADBUTT_TREE
+ NONTALKABLE LAND_TILE ; 16
+ NONTALKABLE LAND_TILE ; 17
+ NONTALKABLE LAND_TILE ; COLL_TALL_GRASS
+ NONTALKABLE LAND_TILE ; 19
+ TALKABLE WALL_TILE ; COLL_CUT_TREE_1A
+ NONTALKABLE LAND_TILE ; 1b
+ NONTALKABLE LAND_TILE ; COLL_LONG_GRASS_1C
+ TALKABLE WALL_TILE ; COLL_HEADBUTT_TREE_1D
+ NONTALKABLE LAND_TILE ; 1e
+ NONTALKABLE LAND_TILE ; 1f
NONTALKABLE WATERTILE ; 20
NONTALKABLE WATERTILE ; COLL_WATER_21
TALKABLE WATERTILE ; 22
- NONTALKABLE LANDTILE ; COLL_ICE
+ NONTALKABLE LAND_TILE ; COLL_ICE
TALKABLE WATERTILE ; COLL_WHIRLPOOL
NONTALKABLE WATERTILE ; 25
NONTALKABLE WATERTILE ; 26
- NONTALKABLE WALLTILE ; COLL_BUOY
+ NONTALKABLE WALL_TILE ; COLL_BUOY
NONTALKABLE WATERTILE ; COLL_CUT_28
NONTALKABLE WATERTILE ; COLL_WATER
TALKABLE WATERTILE ; 2a
- NONTALKABLE LANDTILE ; COLL_ICE_2B
+ NONTALKABLE LAND_TILE ; COLL_ICE_2B
TALKABLE WATERTILE ; COLL_WHIRLPOOL_2C
NONTALKABLE WATERTILE ; 2d
NONTALKABLE WATERTILE ; 2e
- NONTALKABLE WALLTILE ; 2f
+ NONTALKABLE WALL_TILE ; 2f
NONTALKABLE WATERTILE ; COLL_WATERFALL_RIGHT
NONTALKABLE WATERTILE ; COLL_WATERFALL_LEFT
NONTALKABLE WATERTILE ; COLL_WATERFALL_UP
@@ -67,134 +67,134 @@ TileCollisionTable::
NONTALKABLE WATERTILE ; 3d
NONTALKABLE WATERTILE ; 3e
NONTALKABLE WATERTILE ; 3f
- NONTALKABLE LANDTILE ; COLL_BRAKE
- NONTALKABLE LANDTILE ; COLL_WALK_RIGHT
- NONTALKABLE LANDTILE ; COLL_WALK_LEFT
- NONTALKABLE LANDTILE ; COLL_WALK_UP
- NONTALKABLE LANDTILE ; COLL_WALK_DOWN
- NONTALKABLE LANDTILE ; COLL_BRAKE_45
- NONTALKABLE LANDTILE ; COLL_BRAKE_46
- NONTALKABLE LANDTILE ; COLL_BRAKE_47
- NONTALKABLE LANDTILE ; COLL_GRASS_48
- NONTALKABLE LANDTILE ; COLL_GRASS_49
- NONTALKABLE LANDTILE ; COLL_GRASS_4A
- NONTALKABLE LANDTILE ; COLL_GRASS_4B
- NONTALKABLE LANDTILE ; COLL_GRASS_4C
- NONTALKABLE LANDTILE ; 4d
- NONTALKABLE LANDTILE ; 4e
- NONTALKABLE LANDTILE ; 4f
- NONTALKABLE LANDTILE ; COLL_WALK_RIGHT_ALT
- NONTALKABLE LANDTILE ; COLL_WALK_LEFT_ALT
- NONTALKABLE LANDTILE ; COLL_WALK_UP_ALT
- NONTALKABLE LANDTILE ; COLL_WALK_DOWN_ALT
- NONTALKABLE LANDTILE ; COLL_BRAKE_ALT
- NONTALKABLE LANDTILE ; COLL_BRAKE_55
- NONTALKABLE LANDTILE ; COLL_BRAKE_56
- NONTALKABLE LANDTILE ; COLL_BRAKE_57
- NONTALKABLE LANDTILE ; 58
- NONTALKABLE LANDTILE ; 59
- NONTALKABLE LANDTILE ; 5a
- NONTALKABLE LANDTILE ; COLL_5B
- NONTALKABLE LANDTILE ; 5c
- NONTALKABLE LANDTILE ; 5d
- NONTALKABLE LANDTILE ; 5e
- NONTALKABLE LANDTILE ; 5f
- NONTALKABLE LANDTILE ; COLL_PIT
- NONTALKABLE LANDTILE ; COLL_VIRTUAL_BOY
- NONTALKABLE WALLTILE ; 62
- NONTALKABLE LANDTILE ; 63
- NONTALKABLE LANDTILE ; COLL_64
- NONTALKABLE LANDTILE ; COLL_65
- NONTALKABLE LANDTILE ; 66
- NONTALKABLE LANDTILE ; 67
- NONTALKABLE LANDTILE ; COLL_PIT_68
- NONTALKABLE LANDTILE ; 69
- NONTALKABLE WALLTILE ; 6a
- NONTALKABLE LANDTILE ; 6b
- NONTALKABLE LANDTILE ; 6c
- NONTALKABLE LANDTILE ; 6d
- NONTALKABLE LANDTILE ; 6e
- NONTALKABLE LANDTILE ; 6f
- NONTALKABLE LANDTILE ; COLL_WARP_CARPET_DOWN
- NONTALKABLE LANDTILE ; COLL_DOOR
- NONTALKABLE LANDTILE ; COLL_LADDER
- NONTALKABLE LANDTILE ; COLL_STAIRCASE_73
- NONTALKABLE LANDTILE ; COLL_CAVE_74
- NONTALKABLE LANDTILE ; COLL_DOOR_75
- NONTALKABLE LANDTILE ; COLL_WARP_CARPET_LEFT
- NONTALKABLE LANDTILE ; COLL_WARP_77
- NONTALKABLE LANDTILE ; COLL_WARP_CARPET_UP
- NONTALKABLE LANDTILE ; COLL_DOOR_79
- NONTALKABLE LANDTILE ; COLL_STAIRCASE
- NONTALKABLE LANDTILE ; COLL_CAVE
- NONTALKABLE LANDTILE ; COLL_WARP_PANEL
- NONTALKABLE LANDTILE ; COLL_DOOR_7D
- NONTALKABLE LANDTILE ; COLL_WARP_CARPET_RIGHT
- NONTALKABLE LANDTILE ; COLL_WARP_7F
- NONTALKABLE WALLTILE ; 80
- NONTALKABLE WALLTILE ; 81
- NONTALKABLE WALLTILE ; 82
- NONTALKABLE WALLTILE ; 83
- NONTALKABLE WALLTILE ; 84
- NONTALKABLE LANDTILE ; 85
- NONTALKABLE LANDTILE ; 86
- NONTALKABLE LANDTILE ; 87
- NONTALKABLE WALLTILE ; 88
- NONTALKABLE WALLTILE ; 89
- NONTALKABLE WALLTILE ; 8a
- NONTALKABLE WALLTILE ; 8b
- NONTALKABLE WALLTILE ; 8c
- NONTALKABLE LANDTILE ; 8d
- NONTALKABLE LANDTILE ; 8e
- NONTALKABLE LANDTILE ; 8f
- NONTALKABLE WALLTILE ; COLL_COUNTER
- NONTALKABLE WALLTILE ; COLL_BOOKSHELF
- NONTALKABLE WALLTILE ; 92
- NONTALKABLE WALLTILE ; COLL_PC
- NONTALKABLE WALLTILE ; COLL_RADIO
- NONTALKABLE WALLTILE ; COLL_TOWN_MAP
- NONTALKABLE WALLTILE ; COLL_MART_SHELF
- NONTALKABLE WALLTILE ; COLL_TV
- NONTALKABLE WALLTILE ; COLL_COUNTER_98
- NONTALKABLE WALLTILE ; 99
- NONTALKABLE WALLTILE ; 9a
- NONTALKABLE WALLTILE ; 9b
- NONTALKABLE WALLTILE ; COLL_9C
- NONTALKABLE WALLTILE ; COLL_WINDOW
- NONTALKABLE WALLTILE ; 9e
- NONTALKABLE WALLTILE ; COLL_INCENSE_BURNER
- NONTALKABLE LANDTILE ; COLL_HOP_RIGHT
- NONTALKABLE LANDTILE ; COLL_HOP_LEFT
- NONTALKABLE LANDTILE ; COLL_HOP_UP
- NONTALKABLE LANDTILE ; COLL_HOP_DOWN
- NONTALKABLE LANDTILE ; COLL_HOP_DOWN_RIGHT
- NONTALKABLE LANDTILE ; COLL_HOP_DOWN_LEFT
- NONTALKABLE LANDTILE ; COLL_HOP_UP_RIGHT
- NONTALKABLE LANDTILE ; COLL_HOP_UP_LEFT
- NONTALKABLE LANDTILE ; a8
- NONTALKABLE LANDTILE ; a9
- NONTALKABLE LANDTILE ; aa
- NONTALKABLE LANDTILE ; ab
- NONTALKABLE LANDTILE ; ac
- NONTALKABLE LANDTILE ; ad
- NONTALKABLE LANDTILE ; ae
- NONTALKABLE LANDTILE ; af
- NONTALKABLE LANDTILE ; COLL_RIGHT_WALL
- NONTALKABLE LANDTILE ; COLL_LEFT_WALL
- NONTALKABLE LANDTILE ; COLL_UP_WALL
- NONTALKABLE LANDTILE ; COLL_DOWN_WALL
- NONTALKABLE LANDTILE ; COLL_DOWN_RIGHT_WALL
- NONTALKABLE LANDTILE ; COLL_DOWN_LEFT_WALL
- NONTALKABLE LANDTILE ; COLL_UP_RIGHT_WALL
- NONTALKABLE LANDTILE ; COLL_UP_LEFT_WALL
- NONTALKABLE LANDTILE ; b8
- NONTALKABLE LANDTILE ; b9
- NONTALKABLE LANDTILE ; ba
- NONTALKABLE LANDTILE ; bb
- NONTALKABLE LANDTILE ; bc
- NONTALKABLE LANDTILE ; bd
- NONTALKABLE LANDTILE ; be
- NONTALKABLE LANDTILE ; bf
+ NONTALKABLE LAND_TILE ; COLL_BRAKE
+ NONTALKABLE LAND_TILE ; COLL_WALK_RIGHT
+ NONTALKABLE LAND_TILE ; COLL_WALK_LEFT
+ NONTALKABLE LAND_TILE ; COLL_WALK_UP
+ NONTALKABLE LAND_TILE ; COLL_WALK_DOWN
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_45
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_46
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_47
+ NONTALKABLE LAND_TILE ; COLL_GRASS_48
+ NONTALKABLE LAND_TILE ; COLL_GRASS_49
+ NONTALKABLE LAND_TILE ; COLL_GRASS_4A
+ NONTALKABLE LAND_TILE ; COLL_GRASS_4B
+ NONTALKABLE LAND_TILE ; COLL_GRASS_4C
+ NONTALKABLE LAND_TILE ; 4d
+ NONTALKABLE LAND_TILE ; 4e
+ NONTALKABLE LAND_TILE ; 4f
+ NONTALKABLE LAND_TILE ; COLL_WALK_RIGHT_ALT
+ NONTALKABLE LAND_TILE ; COLL_WALK_LEFT_ALT
+ NONTALKABLE LAND_TILE ; COLL_WALK_UP_ALT
+ NONTALKABLE LAND_TILE ; COLL_WALK_DOWN_ALT
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_ALT
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_55
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_56
+ NONTALKABLE LAND_TILE ; COLL_BRAKE_57
+ NONTALKABLE LAND_TILE ; 58
+ NONTALKABLE LAND_TILE ; 59
+ NONTALKABLE LAND_TILE ; 5a
+ NONTALKABLE LAND_TILE ; COLL_5B
+ NONTALKABLE LAND_TILE ; 5c
+ NONTALKABLE LAND_TILE ; 5d
+ NONTALKABLE LAND_TILE ; 5e
+ NONTALKABLE LAND_TILE ; 5f
+ NONTALKABLE LAND_TILE ; COLL_PIT
+ NONTALKABLE LAND_TILE ; COLL_VIRTUAL_BOY
+ NONTALKABLE WALL_TILE ; 62
+ NONTALKABLE LAND_TILE ; 63
+ NONTALKABLE LAND_TILE ; COLL_64
+ NONTALKABLE LAND_TILE ; COLL_65
+ NONTALKABLE LAND_TILE ; 66
+ NONTALKABLE LAND_TILE ; 67
+ NONTALKABLE LAND_TILE ; COLL_PIT_68
+ NONTALKABLE LAND_TILE ; 69
+ NONTALKABLE WALL_TILE ; 6a
+ NONTALKABLE LAND_TILE ; 6b
+ NONTALKABLE LAND_TILE ; 6c
+ NONTALKABLE LAND_TILE ; 6d
+ NONTALKABLE LAND_TILE ; 6e
+ NONTALKABLE LAND_TILE ; 6f
+ NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_DOWN
+ NONTALKABLE LAND_TILE ; COLL_DOOR
+ NONTALKABLE LAND_TILE ; COLL_LADDER
+ NONTALKABLE LAND_TILE ; COLL_STAIRCASE_73
+ NONTALKABLE LAND_TILE ; COLL_CAVE_74
+ NONTALKABLE LAND_TILE ; COLL_DOOR_75
+ NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_LEFT
+ NONTALKABLE LAND_TILE ; COLL_WARP_77
+ NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_UP
+ NONTALKABLE LAND_TILE ; COLL_DOOR_79
+ NONTALKABLE LAND_TILE ; COLL_STAIRCASE
+ NONTALKABLE LAND_TILE ; COLL_CAVE
+ NONTALKABLE LAND_TILE ; COLL_WARP_PANEL
+ NONTALKABLE LAND_TILE ; COLL_DOOR_7D
+ NONTALKABLE LAND_TILE ; COLL_WARP_CARPET_RIGHT
+ NONTALKABLE LAND_TILE ; COLL_WARP_7F
+ NONTALKABLE WALL_TILE ; 80
+ NONTALKABLE WALL_TILE ; 81
+ NONTALKABLE WALL_TILE ; 82
+ NONTALKABLE WALL_TILE ; 83
+ NONTALKABLE WALL_TILE ; 84
+ NONTALKABLE LAND_TILE ; 85
+ NONTALKABLE LAND_TILE ; 86
+ NONTALKABLE LAND_TILE ; 87
+ NONTALKABLE WALL_TILE ; 88
+ NONTALKABLE WALL_TILE ; 89
+ NONTALKABLE WALL_TILE ; 8a
+ NONTALKABLE WALL_TILE ; 8b
+ NONTALKABLE WALL_TILE ; 8c
+ NONTALKABLE LAND_TILE ; 8d
+ NONTALKABLE LAND_TILE ; 8e
+ NONTALKABLE LAND_TILE ; 8f
+ NONTALKABLE WALL_TILE ; COLL_COUNTER
+ NONTALKABLE WALL_TILE ; COLL_BOOKSHELF
+ NONTALKABLE WALL_TILE ; 92
+ NONTALKABLE WALL_TILE ; COLL_PC
+ NONTALKABLE WALL_TILE ; COLL_RADIO
+ NONTALKABLE WALL_TILE ; COLL_TOWN_MAP
+ NONTALKABLE WALL_TILE ; COLL_MART_SHELF
+ NONTALKABLE WALL_TILE ; COLL_TV
+ NONTALKABLE WALL_TILE ; COLL_COUNTER_98
+ NONTALKABLE WALL_TILE ; 99
+ NONTALKABLE WALL_TILE ; 9a
+ NONTALKABLE WALL_TILE ; 9b
+ NONTALKABLE WALL_TILE ; COLL_9C
+ NONTALKABLE WALL_TILE ; COLL_WINDOW
+ NONTALKABLE WALL_TILE ; 9e
+ NONTALKABLE WALL_TILE ; COLL_INCENSE_BURNER
+ NONTALKABLE LAND_TILE ; COLL_HOP_RIGHT
+ NONTALKABLE LAND_TILE ; COLL_HOP_LEFT
+ NONTALKABLE LAND_TILE ; COLL_HOP_UP
+ NONTALKABLE LAND_TILE ; COLL_HOP_DOWN
+ NONTALKABLE LAND_TILE ; COLL_HOP_DOWN_RIGHT
+ NONTALKABLE LAND_TILE ; COLL_HOP_DOWN_LEFT
+ NONTALKABLE LAND_TILE ; COLL_HOP_UP_RIGHT
+ NONTALKABLE LAND_TILE ; COLL_HOP_UP_LEFT
+ NONTALKABLE LAND_TILE ; a8
+ NONTALKABLE LAND_TILE ; a9
+ NONTALKABLE LAND_TILE ; aa
+ NONTALKABLE LAND_TILE ; ab
+ NONTALKABLE LAND_TILE ; ac
+ NONTALKABLE LAND_TILE ; ad
+ NONTALKABLE LAND_TILE ; ae
+ NONTALKABLE LAND_TILE ; af
+ NONTALKABLE LAND_TILE ; COLL_RIGHT_WALL
+ NONTALKABLE LAND_TILE ; COLL_LEFT_WALL
+ NONTALKABLE LAND_TILE ; COLL_UP_WALL
+ NONTALKABLE LAND_TILE ; COLL_DOWN_WALL
+ NONTALKABLE LAND_TILE ; COLL_DOWN_RIGHT_WALL
+ NONTALKABLE LAND_TILE ; COLL_DOWN_LEFT_WALL
+ NONTALKABLE LAND_TILE ; COLL_UP_RIGHT_WALL
+ NONTALKABLE LAND_TILE ; COLL_UP_LEFT_WALL
+ NONTALKABLE LAND_TILE ; b8
+ NONTALKABLE LAND_TILE ; b9
+ NONTALKABLE LAND_TILE ; ba
+ NONTALKABLE LAND_TILE ; bb
+ NONTALKABLE LAND_TILE ; bc
+ NONTALKABLE LAND_TILE ; bd
+ NONTALKABLE LAND_TILE ; be
+ NONTALKABLE LAND_TILE ; bf
NONTALKABLE WATERTILE ; COLL_RIGHT_BUOY
NONTALKABLE WATERTILE ; COLL_LEFT_BUOY
NONTALKABLE WATERTILE ; COLL_UP_BUOY
@@ -211,51 +211,51 @@ TileCollisionTable::
NONTALKABLE WATERTILE ; cd
NONTALKABLE WATERTILE ; ce
NONTALKABLE WATERTILE ; cf
- NONTALKABLE LANDTILE ; d0
- NONTALKABLE LANDTILE ; d1
- NONTALKABLE LANDTILE ; d2
- NONTALKABLE LANDTILE ; d3
- NONTALKABLE LANDTILE ; d4
- NONTALKABLE LANDTILE ; d5
- NONTALKABLE LANDTILE ; d6
- NONTALKABLE LANDTILE ; d7
- NONTALKABLE LANDTILE ; d8
- NONTALKABLE LANDTILE ; d9
- NONTALKABLE LANDTILE ; da
- NONTALKABLE LANDTILE ; db
- NONTALKABLE LANDTILE ; dc
- NONTALKABLE LANDTILE ; dd
- NONTALKABLE LANDTILE ; de
- NONTALKABLE LANDTILE ; df
- NONTALKABLE LANDTILE ; e0
- NONTALKABLE LANDTILE ; e1
- NONTALKABLE LANDTILE ; e2
- NONTALKABLE LANDTILE ; e3
- NONTALKABLE LANDTILE ; e4
- NONTALKABLE LANDTILE ; e5
- NONTALKABLE LANDTILE ; e6
- NONTALKABLE LANDTILE ; e7
- NONTALKABLE LANDTILE ; e8
- NONTALKABLE LANDTILE ; e9
- NONTALKABLE LANDTILE ; ea
- NONTALKABLE LANDTILE ; eb
- NONTALKABLE LANDTILE ; ec
- NONTALKABLE LANDTILE ; ed
- NONTALKABLE LANDTILE ; ee
- NONTALKABLE LANDTILE ; ef
- NONTALKABLE LANDTILE ; f0
- NONTALKABLE LANDTILE ; f1
- NONTALKABLE LANDTILE ; f2
- NONTALKABLE LANDTILE ; f3
- NONTALKABLE LANDTILE ; f4
- NONTALKABLE LANDTILE ; f5
- NONTALKABLE LANDTILE ; f6
- NONTALKABLE LANDTILE ; f7
- NONTALKABLE LANDTILE ; f8
- NONTALKABLE LANDTILE ; f9
- NONTALKABLE LANDTILE ; fa
- NONTALKABLE LANDTILE ; fb
- NONTALKABLE LANDTILE ; fc
- NONTALKABLE LANDTILE ; fd
- NONTALKABLE LANDTILE ; fe
- NONTALKABLE WALLTILE ; COLL_FF
+ NONTALKABLE LAND_TILE ; d0
+ NONTALKABLE LAND_TILE ; d1
+ NONTALKABLE LAND_TILE ; d2
+ NONTALKABLE LAND_TILE ; d3
+ NONTALKABLE LAND_TILE ; d4
+ NONTALKABLE LAND_TILE ; d5
+ NONTALKABLE LAND_TILE ; d6
+ NONTALKABLE LAND_TILE ; d7
+ NONTALKABLE LAND_TILE ; d8
+ NONTALKABLE LAND_TILE ; d9
+ NONTALKABLE LAND_TILE ; da
+ NONTALKABLE LAND_TILE ; db
+ NONTALKABLE LAND_TILE ; dc
+ NONTALKABLE LAND_TILE ; dd
+ NONTALKABLE LAND_TILE ; de
+ NONTALKABLE LAND_TILE ; df
+ NONTALKABLE LAND_TILE ; e0
+ NONTALKABLE LAND_TILE ; e1
+ NONTALKABLE LAND_TILE ; e2
+ NONTALKABLE LAND_TILE ; e3
+ NONTALKABLE LAND_TILE ; e4
+ NONTALKABLE LAND_TILE ; e5
+ NONTALKABLE LAND_TILE ; e6
+ NONTALKABLE LAND_TILE ; e7
+ NONTALKABLE LAND_TILE ; e8
+ NONTALKABLE LAND_TILE ; e9
+ NONTALKABLE LAND_TILE ; ea
+ NONTALKABLE LAND_TILE ; eb
+ NONTALKABLE LAND_TILE ; ec
+ NONTALKABLE LAND_TILE ; ed
+ NONTALKABLE LAND_TILE ; ee
+ NONTALKABLE LAND_TILE ; ef
+ NONTALKABLE LAND_TILE ; f0
+ NONTALKABLE LAND_TILE ; f1
+ NONTALKABLE LAND_TILE ; f2
+ NONTALKABLE LAND_TILE ; f3
+ NONTALKABLE LAND_TILE ; f4
+ NONTALKABLE LAND_TILE ; f5
+ NONTALKABLE LAND_TILE ; f6
+ NONTALKABLE LAND_TILE ; f7
+ NONTALKABLE LAND_TILE ; f8
+ NONTALKABLE LAND_TILE ; f9
+ NONTALKABLE LAND_TILE ; fa
+ NONTALKABLE LAND_TILE ; fb
+ NONTALKABLE LAND_TILE ; fc
+ NONTALKABLE LAND_TILE ; fd
+ NONTALKABLE LAND_TILE ; fe
+ NONTALKABLE WALL_TILE ; COLL_FF
diff --git a/data/events/happiness_probabilities.asm b/data/events/happiness_probabilities.asm
index 7a80f989..f67db07f 100644
--- a/data/events/happiness_probabilities.asm
+++ b/data/events/happiness_probabilities.asm
@@ -1,12 +1,12 @@
HappinessData_OlderHaircutBrother:
- db $4c, 2, HAPPINESS_OLDERCUT1 ; 30% chance
- db $80, 3, HAPPINESS_OLDERCUT2 ; 20% chance
- db $ff, 4, HAPPINESS_OLDERCUT3 ; 50% chance
+ db 30 percent, 2, HAPPINESS_OLDERCUT1 ; 30% chance
+ db 50 percent + 1, 3, HAPPINESS_OLDERCUT2 ; 50% chance
+ db 100 percent, 4, HAPPINESS_OLDERCUT3 ; 20% chance
HappinessData_YoungerHaircutBrother:
- db $9a, 2, HAPPINESS_YOUNGCUT1 ; 60% chance
- db $4c, 3, HAPPINESS_YOUNGCUT2 ; 10% chance
- db $ff, 4, HAPPINESS_YOUNGCUT3 ; 30% chance
+ db 60 percent + 1, 2, HAPPINESS_YOUNGCUT1 ; 60% chance
+ db 30 percent, 3, HAPPINESS_YOUNGCUT2 ; 30% chance
+ db 100 percent, 4, HAPPINESS_YOUNGCUT3 ; 10% chance
HappinessData_DaisysGrooming:
- db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
+ db 100 percent, 2, HAPPINESS_GROOMING ; 99.6% chance
diff --git a/data/items/attributes.asm b/data/items/attributes.asm
index d8977b47..1ed369f0 100644
--- a/data/items/attributes.asm
+++ b/data/items/attributes.asm
@@ -6,774 +6,516 @@ item_attribute: MACRO
ENDM
ItemAttributes:
-Item1Attributes:
-
-; MASTER BALL
- item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-Item2Attributes:
-
-; ULTRA BALL
- item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
+; entries correspond to item ids
+; MASTER_BALL
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ULTRA_BALL
+ item_attribute 1200, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; BRIGHTPOWDER
- item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; GREAT BALL
- item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; # BALL
- item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GREAT_BALL
+ item_attribute 600, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; POKE_BALL
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TOWN_MAP
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BICYCLE
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; MOON STONE
- item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MOON_STONE
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ANTIDOTE
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; BURN HEAL
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; ICE HEAL
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURN_HEAL
+ item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE_HEAL
+ item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; AWAKENING
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; PARLYZ HEAL
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; FULL RESTORE
- item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; MAX POTION
- item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; HYPER POTION
- item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; SUPER POTION
- item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; PARLYZ_HEAL
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FULL_RESTORE
+ item_attribute 3000, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX_POTION
+ item_attribute 2500, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HYPER_POTION
+ item_attribute 1200, HELD_NONE, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SUPER_POTION
+ item_attribute 700, HELD_NONE, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; POTION
- item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; ESCAPE ROPE
- item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
+ item_attribute 300, HELD_NONE, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ESCAPE_ROPE
+ item_attribute 550, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; REPEL
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
-; MAX ELIXER
- item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; FIRE STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX_ELIXER
+ item_attribute 4500, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FIRE_STONE
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; THUNDERSTONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; WATER STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; HP UP
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; WATER_STONE
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ITEM_19
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; HP_UP
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; PROTEIN
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; IRON
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; CARBOS
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; LUCKY PUNCH
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; LUCKY_PUNCH
+ item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CALCIUM
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; RARE CANDY
- item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; X ACCURACY
- item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; LEAF STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; METAL POWDER
- item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; RARE_CANDY
+ item_attribute 4800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; X_ACCURACY
+ item_attribute 950, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LEAF_STONE
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; METAL_POWDER
+ item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; NUGGET
- item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; # DOLL
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; FULL HEAL
- item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 10000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; POKE_DOLL
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FULL_HEAL
+ item_attribute 600, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; REVIVE
- item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; MAX REVIVE
- item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; GUARD SPEC.
- item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; SUPER REPEL
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
-; MAX REPEL
- item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
-; DIRE HIT
- item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; FRESH WATER
- item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; SODA POP
- item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 1500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX_REVIVE
+ item_attribute 4000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GUARD_SPEC
+ item_attribute 700, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; SUPER_REPEL
+ item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX_REPEL
+ item_attribute 700, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; DIRE_HIT
+ item_attribute 650, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ITEM_2D
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRESH_WATER
+ item_attribute 200, HELD_NONE, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SODA_POP
+ item_attribute 300, HELD_NONE, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; LEMONADE
- item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; X ATTACK
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; X DEFEND
- item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; X SPEED
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; X SPECIAL
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; COIN CASE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+ item_attribute 350, HELD_NONE, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; X_ATTACK
+ item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ITEM_32
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; X_DEFEND
+ item_attribute 550, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X_SPEED
+ item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X_SPECIAL
+ item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; COIN_CASE
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEMFINDER
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; EXP.SHARE
- item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; OLD ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; GOOD ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; SILVER LEAF
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SUPER ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; PP UP
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; POKE_FLUTE
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EXP_SHARE
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; OLD_ROD
+ item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; GOOD_ROD
+ item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; SILVER_LEAF
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SUPER_ROD
+ item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; PP_UP
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ETHER
- item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; MAX ETHER
- item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 1200, HELD_NONE, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX_ETHER
+ item_attribute 2000, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ELIXER
- item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; RED SCALE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED_SCALE
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SECRETPOTION
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; S.S.TICKET
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MYSTERY EGG
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SILVER WING
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MOOMOO MILK
- item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; QUICK CLAW
- item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; S_S_TICKET
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTERY_EGG
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_46
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SILVER_WING
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MOOMOO_MILK
+ item_attribute 500, HELD_NONE, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; QUICK_CLAW
+ item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PSNCUREBERRY
- item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; GOLD LEAF
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SOFT SAND
- item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SHARP BEAK
- item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD_LEAF
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SOFT_SAND
+ item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SHARP_BEAK
+ item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PRZCUREBERRY
- item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; BURNT BERRY
- item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; ICE BERRY
- item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; POISON BARB
- item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; KING'S ROCK
- item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BITTER BERRY
- item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
-
-; MINT BERRY
- item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; RED APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURNT_BERRY
+ item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE_BERRY
+ item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; POISON_BARB
+ item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; KINGS_ROCK
+ item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BITTER_BERRY
+ item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
+; MINT_BERRY
+ item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TINYMUSHROOM
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BIG MUSHROOM
- item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG_MUSHROOM
+ item_attribute 5000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SILVERPOWDER
- item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BLU APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; AMULET COIN
- item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; YLW APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; GRN APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; CLEANSE TAG
- item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MYSTIC WATER
- item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLU_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_5A
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; AMULET_COIN
+ item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; YLW_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GRN_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CLEANSE_TAG
+ item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTIC_WATER
+ item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TWISTEDSPOON
- item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; WHT APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; WHT_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLACKBELT_I
- item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BLK APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; PNK APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLK_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_64
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PNK_APRICORN
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLACKGLASSES
- item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SLOWPOKETAIL
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; PINK BOW
- item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PINK_BOW
+ item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; STICK
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SMOKE BALL
- item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SMOKE_BALL
+ item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; NEVERMELTICE
- item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MAGNET
- item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MIRACLEBERRY
- item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; PEARL
- item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BIG PEARL
- item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 1400, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG_PEARL
+ item_attribute 7500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; EVERSTONE
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SPELL TAG
- item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SPELL_TAG
+ item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; RAGECANDYBAR
- item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MIRACLE SEED
- item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; THICK CLUB
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; FOCUS BAND
- item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 300, HELD_NONE, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ITEM_73
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_74
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRACLE_SEED
+ item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; THICK_CLUB
+ item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FOCUS_BAND
+ item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_78
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ENERGYPOWDER
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; ENERGY ROOT
- item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; HEAL POWDER
- item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; REVIVAL HERB
- item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; HARD STONE
- item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LUCKY EGG
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; CARD KEY
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; MACHINE PART
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LOST ITEM
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ENERGY_ROOT
+ item_attribute 800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HEAL_POWDER
+ item_attribute 450, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; REVIVAL_HERB
+ item_attribute 2800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HARD_STONE
+ item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LUCKY_EGG
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CARD_KEY
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MACHINE_PART
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_81
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOST_ITEM
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; STARDUST
- item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; STAR PIECE
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BASEMENT KEY
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STAR_PIECE
+ item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BASEMENT_KEY
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; PASS
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_87
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_88
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_89
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CHARCOAL
- item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BERRY JUICE
- item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; SCOPE LENS
- item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; METAL COAT
- item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; DRAGON FANG
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERRY_JUICE
+ item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SCOPE_LENS
+ item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_8D
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_8E
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; METAL_COAT
+ item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; DRAGON_FANG
+ item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_91
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LEFTOVERS
- item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_93
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_94
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_95
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MYSTERYBERRY
- item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; DRAGON SCALE
- item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BERSERK GENE
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SACRED ASH
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; HEAVY BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; FLOWER MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LEVEL BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; LURE BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; FAST BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LIGHT BALL
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; FRIEND BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; MOON BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; LOVE BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; NORMAL BOX
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
-; GORGEOUS BOX
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
-; SUN STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; POLKADOT BOW
- item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; UP-GRADE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; DRAGON_SCALE
+ item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERSERK_GENE
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_99
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_9A
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_9B
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SACRED_ASH
+ item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; HEAVY_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FLOWER_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LEVEL_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LURE_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FAST_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ITEM_A2
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LIGHT_BALL
+ item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRIEND_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; MOON_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LOVE_BALL
+ item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; NORMAL_BOX
+ item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; GORGEOUS_BOX
+ item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; SUN_STONE
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; POLKADOT_BOW
+ item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_AB
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; UP_GRADE
+ item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BERRY
- item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; GOLD BERRY
- item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
+ item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD_BERRY
+ item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; SQUIRTBOTTLE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; PARK BALL
- item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-
-; RAINBOW WING
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BRICK PIECE
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; SURF MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; ITEM_B0
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PARK_BALL
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; RAINBOW_WING
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_B3
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BRICK_PIECE
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SURF_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LITEBLUEMAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PORTRAITMAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LOVELY MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; EON MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MORPH MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BLUESKY MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MUSIC MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; MIRAGE MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOVELY_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EON_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MORPH_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLUESKY_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MUSIC_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRAGE_MAIL
+ item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ITEM_BE
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TM01
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM02
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM03
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM04
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ITEM_C3
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TM05
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM06
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM07
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM08
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM09
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM10
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM11
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM12
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM13
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM14
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM15
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM16
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM17
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM18
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM19
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM20
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM21
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM22
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM23
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM24
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM25
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM26
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM27
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM28
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ITEM_DC
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TM29
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM30
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM31
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM32
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM33
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM34
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM35
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM36
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM37
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM38
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM39
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM40
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM41
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM42
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM43
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM44
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM45
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM46
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM47
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM48
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM49
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM50
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM01
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM02
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM03
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM04
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM05
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM06
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM07
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; ?
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ITEM_FA
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $fb
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $fc
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $fd
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $fe
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $ff
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; $00
+ item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
diff --git a/data/moves/magnitude_power.asm b/data/moves/magnitude_power.asm
index 7359bdb1..632a0c03 100644
--- a/data/moves/magnitude_power.asm
+++ b/data/moves/magnitude_power.asm
@@ -1,9 +1,9 @@
MagnitudePower:
; chance, power, magnitude #
- db 13, 10, 4
- db 38, 30, 5
- db 89, 50, 6
- db 166, 70, 7
- db 217, 90, 8
- db 242, 110, 9
- db 255, 150, 10
+ db 5 percent + 1, 10, 4 ; 5%
+ db 15 percent, 30, 5 ; 10%
+ db 35 percent, 50, 6 ; 20%
+ db 65 percent + 1, 70, 7 ; 30%
+ db 85 percent + 1, 90, 8 ; 20%
+ db 95 percent, 110, 9 ; 10%
+ db 100 percent, 150, 10 ; 5%
diff --git a/data/moves/present_power.asm b/data/moves/present_power.asm
index 885e9c69..9f85b8a6 100644
--- a/data/moves/present_power.asm
+++ b/data/moves/present_power.asm
@@ -1,6 +1,6 @@
PresentPower:
; chance, power
- db 40 percent, 40 ; 40%
- db 70 percent + 1, 80 ; 30%
- db 80 percent, 120 ; 10%
+ db 40 percent, 40 ; 40% chance
+ db 70 percent + 1, 80 ; 30% chance
+ db 80 percent, 120 ; 10% chance
db -1 ; 20% chance to heal instead
diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm
new file mode 100644
index 00000000..81c7d0ba
--- /dev/null
+++ b/data/moves/tmhm_moves.asm
@@ -0,0 +1,66 @@
+TMHMMoves:
+; entries correspond to *_TMNUM enums (see constants/item_constants.asm)
+; TMs
+ db DYNAMICPUNCH
+ db HEADBUTT
+ db CURSE
+ db ROLLOUT
+ db ROAR
+ db TOXIC
+ db ZAP_CANNON
+ db ROCK_SMASH
+ db PSYCH_UP
+ db HIDDEN_POWER
+ db SUNNY_DAY
+ db SWEET_SCENT
+ db SNORE
+ db BLIZZARD
+ db HYPER_BEAM
+ db ICY_WIND
+ db PROTECT
+ db RAIN_DANCE
+ db GIGA_DRAIN
+ db ENDURE
+ db FRUSTRATION
+ db SOLARBEAM
+ db IRON_TAIL
+ db DRAGONBREATH
+ db THUNDER
+ db EARTHQUAKE
+ db RETURN
+ db DIG
+ db PSYCHIC_M
+ db SHADOW_BALL
+ db MUD_SLAP
+ db DOUBLE_TEAM
+ db ICE_PUNCH
+ db SWAGGER
+ db SLEEP_TALK
+ db SLUDGE_BOMB
+ db SANDSTORM
+ db FIRE_BLAST
+ db SWIFT
+ db DEFENSE_CURL
+ db THUNDERPUNCH
+ db DREAM_EATER
+ db DETECT
+ db REST
+ db ATTRACT
+ db THIEF
+ db STEEL_WING
+ db FIRE_PUNCH
+ db FURY_CUTTER
+ db NIGHTMARE
+; HMs
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WHIRLPOOL
+ db WATERFALL
+; Move tutor (Crystal-only)
+ db 0
+ db 0
+ db 0
+ db 0 ; end
diff --git a/data/player_names.asm b/data/player_names.asm
index 69108f0c..0155dac4 100644
--- a/data/player_names.asm
+++ b/data/player_names.asm
@@ -8,6 +8,7 @@ NameMenuHeader:
db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B ; flags
db 5 ; items
db "NEW NAME@"
+
PlayerNameArray:
IF DEF(_GOLD)
db "GOLD@"
diff --git a/data/pokemon/egg_moves.asm b/data/pokemon/egg_moves.asm
index 8b968b2b..6576a8df 100644
--- a/data/pokemon/egg_moves.asm
+++ b/data/pokemon/egg_moves.asm
@@ -1,19 +1,18 @@
INCLUDE "constants.asm"
+
SECTION "Egg Moves", ROMX
; All instances of Charm, Steel Wing, Sweet Scent, and Lovely Kiss were
-; removed from egg move lists in Crystal, because they are also TMs.
+; removed from egg move lists in Crystal.
+; Sweet Scent and Steel Wing were redundant since they're TMs, and
+; Charm and Lovely Kiss were unobtainable.
; Staryu's egg moves were removed in Crystal, because Staryu is genderless
; and can only breed with Ditto.
-
INCLUDE "data/pokemon/egg_move_pointers.asm"
-
-EggMoves::
-
BulbasaurEggMoves:
db LIGHT_SCREEN
db SKULL_BASH
@@ -21,7 +20,7 @@ BulbasaurEggMoves:
db CHARM
db RAZOR_WIND
db PETAL_DANCE
- db -1
+ db -1 ; end
CharmanderEggMoves:
db BELLY_DRUM
@@ -30,7 +29,7 @@ CharmanderEggMoves:
db BITE
db OUTRAGE
db BEAT_UP
- db -1
+ db -1 ; end
SquirtleEggMoves:
db MIRROR_COAT
@@ -39,14 +38,14 @@ SquirtleEggMoves:
db CONFUSION
db FORESIGHT
db FLAIL
- db -1
+ db -1 ; end
PidgeyEggMoves:
db PURSUIT
db FAINT_ATTACK
db FORESIGHT
db STEEL_WING
- db -1
+ db -1 ; end
RattataEggMoves:
db SCREECH
@@ -55,7 +54,7 @@ RattataEggMoves:
db BITE
db COUNTER
db REVERSAL
- db -1
+ db -1 ; end
SpearowEggMoves:
db FAINT_ATTACK
@@ -63,21 +62,21 @@ SpearowEggMoves:
db SCARY_FACE
db QUICK_ATTACK
db TRI_ATTACK
- db -1
+ db -1 ; end
EkansEggMoves:
db PURSUIT
db SLAM
db SPITE
db BEAT_UP
- db -1
+ db -1 ; end
SandshrewEggMoves:
db FLAIL
db SAFEGUARD
db COUNTER
db RAPID_SPIN
- db -1
+ db -1 ; end
NidoranFEggMoves:
db SUPERSONIC
@@ -87,7 +86,7 @@ NidoranFEggMoves:
db CHARM
db COUNTER
db BEAT_UP
- db -1
+ db -1 ; end
NidoranMEggMoves:
db SUPERSONIC
@@ -97,7 +96,7 @@ NidoranMEggMoves:
db AMNESIA
db COUNTER
db BEAT_UP
- db -1
+ db -1 ; end
VulpixEggMoves:
db FAINT_ATTACK
@@ -105,7 +104,7 @@ VulpixEggMoves:
db FLAIL
db SPITE
db DISABLE
- db -1
+ db -1 ; end
ZubatEggMoves:
db QUICK_ATTACK
@@ -113,7 +112,7 @@ ZubatEggMoves:
db FAINT_ATTACK
db GUST
db WHIRLWIND
- db -1
+ db -1 ; end
OddishEggMoves:
db SWORDS_DANCE
@@ -121,7 +120,7 @@ OddishEggMoves:
db FLAIL
db SYNTHESIS
db CHARM
- db -1
+ db -1 ; end
ParasEggMoves:
db FALSE_SWIPE
@@ -132,13 +131,13 @@ ParasEggMoves:
db SWEET_SCENT
db LIGHT_SCREEN
db PURSUIT
- db -1
+ db -1 ; end
VenonatEggMoves:
db BATON_PASS
db SCREECH
db GIGA_DRAIN
- db -1
+ db -1 ; end
DiglettEggMoves:
db FAINT_ATTACK
@@ -146,14 +145,14 @@ DiglettEggMoves:
db ANCIENTPOWER
db PURSUIT
db BEAT_UP
- db -1
+ db -1 ; end
MeowthEggMoves:
db SPITE
db CHARM
db HYPNOSIS
db AMNESIA
- db -1
+ db -1 ; end
PsyduckEggMoves:
db ICE_BEAM
@@ -163,7 +162,7 @@ PsyduckEggMoves:
db LIGHT_SCREEN
db FUTURE_SIGHT
db PSYCHIC_M
- db -1
+ db -1 ; end
MankeyEggMoves:
db ROCK_SLIDE
@@ -172,7 +171,7 @@ MankeyEggMoves:
db COUNTER
db REVERSAL
db BEAT_UP
- db -1
+ db -1 ; end
GrowlitheEggMoves:
db BODY_SLAM
@@ -180,7 +179,7 @@ GrowlitheEggMoves:
db CRUNCH
db THRASH
db FIRE_SPIN
- db -1
+ db -1 ; end
PoliwagEggMoves:
db MIST
@@ -188,20 +187,20 @@ PoliwagEggMoves:
db BUBBLEBEAM
db HAZE
db MIND_READER
- db -1
+ db -1 ; end
AbraEggMoves:
db LIGHT_SCREEN
db ENCORE
db BARRIER
- db -1
+ db -1 ; end
MachopEggMoves:
db LIGHT_SCREEN
db MEDITATE
db ROLLING_KICK
db ENCORE
- db -1
+ db -1 ; end
BellsproutEggMoves:
db SWORDS_DANCE
@@ -209,7 +208,7 @@ BellsproutEggMoves:
db REFLECT
db SYNTHESIS
db LEECH_LIFE
- db -1
+ db -1 ; end
TentacoolEggMoves:
db AURORA_BEAM
@@ -217,12 +216,12 @@ TentacoolEggMoves:
db RAPID_SPIN
db HAZE
db SAFEGUARD
- db -1
+ db -1 ; end
GeodudeEggMoves:
db MEGA_PUNCH
db ROCK_SLIDE
- db -1
+ db -1 ; end
PonytaEggMoves:
db FLAME_WHEEL
@@ -231,14 +230,14 @@ PonytaEggMoves:
db HYPNOSIS
db CHARM
db QUICK_ATTACK
- db -1
+ db -1 ; end
SlowpokeEggMoves:
db SAFEGUARD
db BELLY_DRUM
db FUTURE_SIGHT
db STOMP
- db -1
+ db -1 ; end
FarfetchDEggMoves:
db STEEL_WING
@@ -247,7 +246,7 @@ FarfetchDEggMoves:
db GUST
db QUICK_ATTACK
db FLAIL
- db -1
+ db -1 ; end
DoduoEggMoves:
db QUICK_ATTACK
@@ -255,7 +254,7 @@ DoduoEggMoves:
db HAZE
db FAINT_ATTACK
db FLAIL
- db -1
+ db -1 ; end
SeelEggMoves:
db LICK
@@ -264,13 +263,13 @@ SeelEggMoves:
db PECK
db SLAM
db ENCORE
- db -1
+ db -1 ; end
GrimerEggMoves:
db HAZE
db MEAN_LOOK
db LICK
- db -1
+ db -1 ; end
ShellderEggMoves:
db BUBBLEBEAM
@@ -278,23 +277,23 @@ ShellderEggMoves:
db BARRIER
db RAPID_SPIN
db SCREECH
- db -1
+ db -1 ; end
GastlyEggMoves:
db PSYWAVE
db PERISH_SONG
db HAZE
- db -1
+ db -1 ; end
OnixEggMoves:
db ROCK_SLIDE
db FLAIL
- db -1
+ db -1 ; end
DrowzeeEggMoves:
db LIGHT_SCREEN
db BARRIER
- db -1
+ db -1 ; end
KrabbyEggMoves:
db DIG
@@ -302,7 +301,7 @@ KrabbyEggMoves:
db AMNESIA
db FLAIL
db SLAM
- db -1
+ db -1 ; end
ExeggcuteEggMoves:
db SYNTHESIS
@@ -310,7 +309,7 @@ ExeggcuteEggMoves:
db REFLECT
db MEGA_DRAIN
db ANCIENTPOWER
- db -1
+ db -1 ; end
CuboneEggMoves:
db ROCK_SLIDE
@@ -319,13 +318,13 @@ CuboneEggMoves:
db SCREECH
db SKULL_BASH
db PERISH_SONG
- db -1
+ db -1 ; end
LickitungEggMoves:
db BELLY_DRUM
db MAGNITUDE
db BODY_SLAM
- db -1
+ db -1 ; end
KoffingEggMoves:
db SCREECH
@@ -333,7 +332,7 @@ KoffingEggMoves:
db PSYBEAM
db DESTINY_BOND
db PAIN_SPLIT
- db -1
+ db -1 ; end
RhyhornEggMoves:
db CRUNCH
@@ -343,13 +342,13 @@ RhyhornEggMoves:
db PURSUIT
db COUNTER
db MAGNITUDE
- db -1
+ db -1 ; end
ChanseyEggMoves:
db PRESENT
db METRONOME
db HEAL_BELL
- db -1
+ db -1 ; end
TangelaEggMoves:
db FLAIL
@@ -357,7 +356,7 @@ TangelaEggMoves:
db MEGA_DRAIN
db REFLECT
db AMNESIA
- db -1
+ db -1 ; end
KangaskhanEggMoves:
db STOMP
@@ -365,7 +364,7 @@ KangaskhanEggMoves:
db FOCUS_ENERGY
db SAFEGUARD
db DISABLE
- db -1
+ db -1 ; end
HorseaEggMoves:
db FLAIL
@@ -374,13 +373,13 @@ HorseaEggMoves:
db DISABLE
db SPLASH
db DRAGON_RAGE
- db -1
+ db -1 ; end
GoldeenEggMoves:
db PSYBEAM
db HAZE
db HYDRO_PUMP
- db -1
+ db -1 ; end
StaryuEggMoves:
db AURORA_BEAM
@@ -392,7 +391,7 @@ MrMimeEggMoves:
db FUTURE_SIGHT
db HYPNOSIS
db MIMIC
- db -1
+ db -1 ; end
ScytherEggMoves:
db COUNTER
@@ -401,22 +400,22 @@ ScytherEggMoves:
db RAZOR_WIND
db REVERSAL
db LIGHT_SCREEN
- db -1
+ db -1 ; end
PinsirEggMoves:
db FURY_ATTACK
db FLAIL
- db -1
+ db -1 ; end
LaprasEggMoves:
db AURORA_BEAM
db FORESIGHT
- db -1
+ db -1 ; end
EeveeEggMoves:
db FLAIL
db CHARM
- db -1
+ db -1 ; end
OmanyteEggMoves:
db BUBBLEBEAM
@@ -424,7 +423,7 @@ OmanyteEggMoves:
db SLAM
db SUPERSONIC
db HAZE
- db -1
+ db -1 ; end
KabutoEggMoves:
db BUBBLEBEAM
@@ -432,26 +431,26 @@ KabutoEggMoves:
db RAPID_SPIN
db DIG
db FLAIL
- db -1
+ db -1 ; end
AerodactylEggMoves:
db WHIRLWIND
db PURSUIT
db FORESIGHT
db STEEL_WING
- db -1
+ db -1 ; end
SnorlaxEggMoves:
db LICK
db CHARM
- db -1
+ db -1 ; end
DratiniEggMoves:
db LIGHT_SCREEN
db MIST
db HAZE
db SUPERSONIC
- db -1
+ db -1 ; end
ChikoritaEggMoves:
db VINE_WHIP
@@ -459,7 +458,7 @@ ChikoritaEggMoves:
db COUNTER
db ANCIENTPOWER
db FLAIL
- db -1
+ db -1 ; end
CyndaquilEggMoves:
db FURY_SWIPES
@@ -467,7 +466,7 @@ CyndaquilEggMoves:
db REVERSAL
db THRASH
db FORESIGHT
- db -1
+ db -1 ; end
TotodileEggMoves:
db CRUNCH
@@ -476,7 +475,7 @@ TotodileEggMoves:
db ANCIENTPOWER
db RAZOR_WIND
db ROCK_SLIDE
- db -1
+ db -1 ; end
SentretEggMoves:
db DOUBLE_EDGE
@@ -484,7 +483,7 @@ SentretEggMoves:
db SLASH
db FOCUS_ENERGY
db REVERSAL
- db -1
+ db -1 ; end
HoothootEggMoves:
db MIRROR_MOVE
@@ -492,13 +491,13 @@ HoothootEggMoves:
db FAINT_ATTACK
db WING_ATTACK
db WHIRLWIND
- db -1
+ db -1 ; end
LedybaEggMoves:
db PSYBEAM
db BIDE
db LIGHT_SCREEN
- db -1
+ db -1 ; end
SpinarakEggMoves:
db PSYBEAM
@@ -506,13 +505,13 @@ SpinarakEggMoves:
db SONICBOOM
db BATON_PASS
db PURSUIT
- db -1
+ db -1 ; end
ChinchouEggMoves:
db FLAIL
db SUPERSONIC
db SCREECH
- db -1
+ db -1 ; end
PichuEggMoves:
db REVERSAL
@@ -520,7 +519,7 @@ PichuEggMoves:
db PRESENT
db ENCORE
db DOUBLESLAP
- db -1
+ db -1 ; end
CleffaEggMoves:
db PRESENT
@@ -529,13 +528,13 @@ CleffaEggMoves:
db BELLY_DRUM
db SPLASH
db MIMIC
- db -1
+ db -1 ; end
IgglybuffEggMoves:
db PERISH_SONG
db PRESENT
db FAINT_ATTACK
- db -1
+ db -1 ; end
TogepiEggMoves:
db PRESENT
@@ -543,7 +542,7 @@ TogepiEggMoves:
db PECK
db FORESIGHT
db FUTURE_SIGHT
- db -1
+ db -1 ; end
NatuEggMoves:
db HAZE
@@ -551,7 +550,7 @@ NatuEggMoves:
db QUICK_ATTACK
db FAINT_ATTACK
db STEEL_WING
- db -1
+ db -1 ; end
MareepEggMoves:
db THUNDERBOLT
@@ -560,7 +559,7 @@ MareepEggMoves:
db SAFEGUARD
db SCREECH
db REFLECT
- db -1
+ db -1 ; end
MarillEggMoves:
db LIGHT_SCREEN
@@ -571,11 +570,11 @@ MarillEggMoves:
db PERISH_SONG
db SUPERSONIC
db FORESIGHT
- db -1
+ db -1 ; end
SudowoodoEggMoves:
db SELFDESTRUCT
- db -1
+ db -1 ; end
HoppipEggMoves:
db CONFUSION
@@ -585,7 +584,7 @@ HoppipEggMoves:
db REFLECT
db AMNESIA
db PAY_DAY
- db -1
+ db -1 ; end
AipomEggMoves:
db COUNTER
@@ -596,19 +595,19 @@ AipomEggMoves:
db SLAM
db DOUBLESLAP
db BEAT_UP
- db -1
+ db -1 ; end
YanmaEggMoves:
db WHIRLWIND
db REVERSAL
db LEECH_LIFE
- db -1
+ db -1 ; end
WooperEggMoves:
db BODY_SLAM
db ANCIENTPOWER
db SAFEGUARD
- db -1
+ db -1 ; end
MurkrowEggMoves:
db WHIRLWIND
@@ -616,12 +615,12 @@ MurkrowEggMoves:
db QUICK_ATTACK
db MIRROR_MOVE
db WING_ATTACK
- db -1
+ db -1 ; end
MisdreavusEggMoves:
db SCREECH
db DESTINY_BOND
- db -1
+ db -1 ; end
GirafarigEggMoves:
db TAKE_DOWN
@@ -629,14 +628,14 @@ GirafarigEggMoves:
db FORESIGHT
db FUTURE_SIGHT
db BEAT_UP
- db -1
+ db -1 ; end
PinecoEggMoves:
db REFLECT
db PIN_MISSILE
db FLAIL
db SWIFT
- db -1
+ db -1 ; end
DunsparceEggMoves:
db BIDE
@@ -644,14 +643,14 @@ DunsparceEggMoves:
db ROCK_SLIDE
db BITE
db RAGE
- db -1
+ db -1 ; end
GligarEggMoves:
db METAL_CLAW
db WING_ATTACK
db RAZOR_WIND
db COUNTER
- db -1
+ db -1 ; end
SnubbullEggMoves:
db METRONOME
@@ -662,24 +661,24 @@ SnubbullEggMoves:
db HEAL_BELL
db LICK
db LEER
- db -1
+ db -1 ; end
QwilfishEggMoves:
db FLAIL
db HAZE
db BUBBLEBEAM
db SUPERSONIC
- db -1
+ db -1 ; end
ShuckleEggMoves:
db SWEET_SCENT
- db -1
+ db -1 ; end
HeracrossEggMoves:
db HARDEN
db BIDE
db FLAIL
- db -1
+ db -1 ; end
SneaselEggMoves:
db COUNTER
@@ -687,7 +686,7 @@ SneaselEggMoves:
db FORESIGHT
db REFLECT
db BITE
- db -1
+ db -1 ; end
TeddiursaEggMoves:
db CRUNCH
@@ -695,11 +694,11 @@ TeddiursaEggMoves:
db SEISMIC_TOSS
db FOCUS_ENERGY
db COUNTER
- db -1
+ db -1 ; end
SlugmaEggMoves:
db ACID_ARMOR
- db -1
+ db -1 ; end
SwinubEggMoves:
db TAKE_DOWN
@@ -707,7 +706,7 @@ SwinubEggMoves:
db BODY_SLAM
db ROCK_SLIDE
db ANCIENTPOWER
- db -1
+ db -1 ; end
CorsolaEggMoves:
db ROCK_SLIDE
@@ -715,7 +714,7 @@ CorsolaEggMoves:
db SCREECH
db MIST
db AMNESIA
- db -1
+ db -1 ; end
RemoraidEggMoves:
db AURORA_BEAM
@@ -723,7 +722,7 @@ RemoraidEggMoves:
db SUPERSONIC
db HAZE
db SCREECH
- db -1
+ db -1 ; end
DelibirdEggMoves:
db AURORA_BEAM
@@ -731,20 +730,20 @@ DelibirdEggMoves:
db FUTURE_SIGHT
db SPLASH
db RAPID_SPIN
- db -1
+ db -1 ; end
MantineEggMoves:
db TWISTER
db HYDRO_PUMP
db HAZE
db SLAM
- db -1
+ db -1 ; end
SkarmoryEggMoves:
db DRILL_PECK
db PURSUIT
db WHIRLWIND
- db -1
+ db -1 ; end
HoundourEggMoves:
db FIRE_SPIN
@@ -754,13 +753,13 @@ HoundourEggMoves:
db SPITE
db REVERSAL
db BEAT_UP
- db -1
+ db -1 ; end
PhanpyEggMoves:
db FOCUS_ENERGY
db BODY_SLAM
db ANCIENTPOWER
- db -1
+ db -1 ; end
StantlerEggMoves:
db REFLECT
@@ -768,39 +767,39 @@ StantlerEggMoves:
db DISABLE
db LIGHT_SCREEN
db BITE
- db -1
+ db -1 ; end
TyrogueEggMoves:
db RAPID_SPIN
db HI_JUMP_KICK
db MACH_PUNCH
db MIND_READER
- db -1
+ db -1 ; end
SmoochumEggMoves:
db LOVELY_KISS
db MEDITATE
- db -1
+ db -1 ; end
ElekidEggMoves:
db KARATE_CHOP
db BARRIER
db ROLLING_KICK
db MEDITATE
- db -1
+ db -1 ; end
MagbyEggMoves:
db KARATE_CHOP
db MEGA_PUNCH
db BARRIER
db SCREECH
- db -1
+ db -1 ; end
MiltankEggMoves:
db PRESENT
db REVERSAL
db SEISMIC_TOSS
- db -1
+ db -1 ; end
LarvitarEggMoves:
db PURSUIT
@@ -808,7 +807,7 @@ LarvitarEggMoves:
db OUTRAGE
db FOCUS_ENERGY
db ANCIENTPOWER
- db -1
+ db -1 ; end
NoEggMoves:
- db -1
+ db -1 ; end
diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm
index 27614ae5..42ca37d4 100644
--- a/data/pokemon/evos_attacks.asm
+++ b/data/pokemon/evos_attacks.asm
@@ -3,10 +3,6 @@ INCLUDE "constants.asm"
SECTION "Evolutions and Attacks", ROMX
-INCLUDE "data/pokemon/evos_attacks_pointers.asm"
-
-EvosAttacks::
-
; Evos+attacks data structure:
; - Evolution methods:
; * db EVOLVE_LEVEL, level, species
@@ -19,6 +15,8 @@ EvosAttacks::
; * db level, move
; - db 0 ; no more level-up moves
+INCLUDE "data/pokemon/evos_attacks_pointers.asm"
+
BulbasaurEvosAttacks:
db EVOLVE_LEVEL, 16, IVYSAUR
db 0 ; no more evolutions
@@ -838,7 +836,7 @@ AbraEvosAttacks:
db 0 ; no more level-up moves
KadabraEvosAttacks:
- db EVOLVE_TRADE, $ff, ALAKAZAM
+ db EVOLVE_TRADE, -1, ALAKAZAM
db 0 ; no more evolutions
db 1, TELEPORT
db 1, KINESIS
@@ -882,7 +880,7 @@ MachopEvosAttacks:
db 0 ; no more level-up moves
MachokeEvosAttacks:
- db EVOLVE_TRADE, $ff, MACHAMP
+ db EVOLVE_TRADE, -1, MACHAMP
db 0 ; no more evolutions
db 1, LOW_KICK
db 1, LEER
@@ -996,7 +994,7 @@ GeodudeEvosAttacks:
db 0 ; no more level-up moves
GravelerEvosAttacks:
- db EVOLVE_TRADE, $ff, GOLEM
+ db EVOLVE_TRADE, -1, GOLEM
db 0 ; no more evolutions
db 1, TACKLE
db 1, DEFENSE_CURL
@@ -1199,6 +1197,7 @@ GrimerEvosAttacks:
MukEvosAttacks:
db 0 ; no more evolutions
+ ; moves are not sorted by level
db 1, POISON_GAS
db 1, POUND
db 1, HARDEN
@@ -1248,7 +1247,7 @@ GastlyEvosAttacks:
db 0 ; no more level-up moves
HaunterEvosAttacks:
- db EVOLVE_TRADE, $ff, GENGAR
+ db EVOLVE_TRADE, -1, GENGAR
db 0 ; no more evolutions
db 1, HYPNOSIS
db 1, LICK
diff --git a/data/pokemon/evos_attacks_pointers.asm b/data/pokemon/evos_attacks_pointers.asm
index 4ce10b10..7b27c6a7 100644
--- a/data/pokemon/evos_attacks_pointers.asm
+++ b/data/pokemon/evos_attacks_pointers.asm
@@ -1,8 +1,6 @@
-; Pointer table for evolutions and attacks.
+; Evolutions and attacks are grouped together since they're both checked at level-up.
-; These are grouped together since they're both checked at level-up.
-
-EvosAttacksPointers:: ; 0x425b1
+EvosAttacksPointers::
dw BulbasaurEvosAttacks
dw IvysaurEvosAttacks
dw VenusaurEvosAttacks
diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm
index 76d67c6c..570ecbf6 100644
--- a/data/pokemon/palettes.asm
+++ b/data/pokemon/palettes.asm
@@ -1,8 +1,17 @@
PokemonPalettes:
+; entries correspond to Pokémon species, two apiece
+
+; Each front.gbcpal is generated from the corresponding .png, and
+; only the middle two colors are included, not black or white.
+; Shiny palettes are defined directly, not generated.
+
+; 000
RGB 30, 22, 17
RGB 16, 14, 19
+; 000 shiny
RGB 30, 22, 17
RGB 16, 14, 19
+
BulbasaurPalette: INCLUDE "gfx/pokemon/bulbasaur/normal.pal"
BulbasaurShinyPalette: INCLUDE "gfx/pokemon/bulbasaur/shiny.pal"
IvysaurPalette: INCLUDE "gfx/pokemon/ivysaur/normal.pal"
@@ -505,19 +514,31 @@ Ho_ohPalette: INCLUDE "gfx/pokemon/ho_oh/normal.pal"
Ho_ohShinyPalette: INCLUDE "gfx/pokemon/ho_oh/shiny.pal"
CelebiPalette: INCLUDE "gfx/pokemon/celebi/normal.pal"
CelebiShinyPalette: INCLUDE "gfx/pokemon/celebi/shiny.pal"
+
+; 252
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+; 252 shiny
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+
+; egg
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+; egg shiny
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+
+; 254
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+; 254 shiny
RGB 30, 26, 11
- RGB 23, 16, 0
+ RGB 23, 16, 00
+
+; 255
RGB 23, 23, 23
RGB 17, 17, 17
+; 255 shiny
RGB 23, 23, 23
RGB 17, 17, 17
diff --git a/data/pokemon/pic_pointers.asm b/data/pokemon/pic_pointers.asm
index 8dcf48a5..b5912852 100644
--- a/data/pokemon/pic_pointers.asm
+++ b/data/pokemon/pic_pointers.asm
@@ -1,4 +1,7 @@
+; Pics are defined in gfx/pics_gold.asm and gfx/pics_silver.asm
+
PokemonPicPointers::
+; entries correspond to Pokémon species, two apiece
dba_pic BulbasaurFrontpic
dba_pic BulbasaurBackpic
dba_pic IvysaurFrontpic
diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm
index 21bb51a7..2f13e5d6 100644
--- a/data/trainers/palettes.asm
+++ b/data/trainers/palettes.asm
@@ -1,12 +1,11 @@
-
TrainerPalettes:
+; entries correspond to trainer classes
-PlayerPalette:
-; The player's palette
-; RGB 25, 18, 12
-; RGB 22, 09, 05
- INCLUDE "gfx/trainers/cal.pal"
+; Each .gbcpal is generated from the corresponding .png, and
+; only the middle two colors are included, not black or white.
+PlayerPalette: ; Chris uses the same colors as Cal
+INCLUDE "gfx/trainers/cal.pal"
FalknerPalette: INCLUDE "gfx/trainers/falkner.pal"
WhitneyPalette: INCLUDE "gfx/trainers/whitney.pal"
BugsyPalette: INCLUDE "gfx/trainers/bugsy.pal"
diff --git a/engine/battle/ai/items.asm b/engine/battle/ai/items.asm
index bf65c683..0f30199e 100644
--- a/engine/battle/ai/items.asm
+++ b/engine/battle/ai/items.asm
@@ -692,7 +692,6 @@ AI_Switch:
ld a, [wLinkMode]
cp LINK_COLOSSEUM
ret z
-
scf
ret
diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm
index 2ff0c2da..bfb9c282 100644
--- a/engine/battle/ai/scoring.asm
+++ b/engine/battle/ai/scoring.asm
@@ -1,5 +1,6 @@
AIScoring: ; used only for BANK(AIScoring)
+
AI_Basic:
; Don't do anything redundant:
; -Using status-only moves if the player can't be statused
@@ -458,15 +459,15 @@ AI_Smart_LockOn:
.asm_38826
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_3886c
- cp $8
+ cp BASE_STAT_LEVEL + 1
jr nc, .asm_38867
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_3886c
- cp $7
+ cp BASE_STAT_LEVEL
jr c, .asm_38867
ld hl, wEnemyMonMoves
@@ -559,7 +560,7 @@ AI_Smart_Selfdestruct:
; If enemy's HP is between 25% and 50%,
; over 90% chance to greatly discourage this move.
call Random
- cp 9 percent - 2
+ cp 8 percent
ret c
.asm_388a7
@@ -583,7 +584,7 @@ AI_Smart_DreamEater:
AI_Smart_EvasionUp:
; Dismiss this move if enemy's evasion can't raise anymore.
ld a, [wEnemyEvaLevel]
- cp $d
+ cp MAX_STAT_LEVEL
jp nc, AIDiscourageMove
; If enemy's HP is full...
@@ -694,12 +695,12 @@ AI_Smart_AlwaysHit:
; ...enemy's accuracy level has been lowered three or more stages
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_38935
; ...or player's evasion level has been raised three or more stages.
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
ret c
.asm_38935
@@ -859,12 +860,12 @@ AI_Smart_ResetStats:
; 85% chance to encourage this move if any of enemy's stat levels is lower than -2.
push hl
ld hl, wEnemyAtkLevel
- ld c, $8
+ ld c, NUM_LEVEL_STATS
.asm_389dc
dec c
jr z, .asm_389e6
ld a, [hli]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_389f3
jr .asm_389dc
@@ -876,7 +877,7 @@ AI_Smart_ResetStats:
dec c
jr z, .asm_389fc
ld a, [hli]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr c, .asm_389eb
.asm_389f3
@@ -1032,7 +1033,7 @@ AI_Smart_Unused2B:
.asm_38a8b
push hl
ld hl, wPlayerUsedMoves
- ld c, 4
+ ld c, NUM_MOVES
.asm_38a91
ld a, [hli]
@@ -1095,12 +1096,12 @@ AI_Smart_SpDefenseUp2:
; Discourage this move if enemy's special defense level is higher than +3.
ld a, [wEnemySDefLevel]
- cp $b
+ cp BASE_STAT_LEVEL + 4
jr nc, .asm_38af1
; 80% chance to greatly encourage this move if
; enemy's Special Defense level is lower than +2, and the player is of a special type.
- cp $9
+ cp BASE_STAT_LEVEL + 2
ret nc
ld a, [wBattleMonType1]
@@ -1239,11 +1240,11 @@ AI_Smart_Rage:
; Encourage this move based on Rage's counter.
.asm_38b6d
ld a, [wEnemyRageCounter]
- cp $2
+ cp 2
ret c
dec [hl]
ld a, [wEnemyRageCounter]
- cp $3
+ cp 3
ret c
dec [hl]
ret
@@ -1315,7 +1316,7 @@ AI_Smart_Mimic:
AI_Smart_Counter:
push hl
ld hl, wPlayerUsedMoves
- ld c, 4
+ ld c, NUM_MOVES
ld b, 0
.asm_38bda
@@ -1454,8 +1455,8 @@ AI_Smart_SleepTalk:
; Greatly discourage this move otherwise.
ld a, [wEnemyMonStatus]
- and $7
- cp $1
+ and SLP
+ cp 1
jr z, .asm_38ca8
dec [hl]
@@ -1497,7 +1498,7 @@ AI_Smart_Spite:
.asm_38cc8
push hl
ld b, a
- ld c, 4
+ ld c, NUM_MOVES
ld hl, wBattleMonMoves
ld de, wBattleMonPP
@@ -1516,9 +1517,9 @@ AI_Smart_Spite:
.asm_38cdc
pop hl
ld a, [de]
- cp $6
+ cp 6
jr c, .asm_38cee
- cp $f
+ cp 15
jr nc, .asm_38cec
call Random
@@ -1815,9 +1816,9 @@ AI_Smart_Curse:
jr nc, .asm_38e72
ld a, [wEnemyAtkLevel]
- cp $b
+ cp BASE_STAT_LEVEL + 4
jr nc, .asm_38e72
- cp $9
+ cp BASE_STAT_LEVEL + 2
ret nc
ld a, [wBattleMonType1]
@@ -1915,10 +1916,10 @@ AI_Smart_Protect:
AI_Smart_Foresight:
ld a, [wEnemyAccLevel]
- cp $5
+ cp BASE_STAT_LEVEL - 2
jr c, .asm_38f02
ld a, [wPlayerEvaLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_38f02
ld a, [wBattleMonType1]
@@ -2107,10 +2108,10 @@ AI_Smart_Rollout:
jr nc, .asm_38fe1
ld a, [wEnemyAccLevel]
- cp 7
+ cp BASE_STAT_LEVEL
jr c, .asm_38fe1
ld a, [wPlayerEvaLevel]
- cp 8
+ cp BASE_STAT_LEVEL + 1
jr nc, .asm_38fe1
; Otherwise, 80% chance to greatly encourage this move.
@@ -2378,7 +2379,7 @@ AI_Smart_BellyDrum:
; Else, discourage this move if enemy's HP is not full.
ld a, [wEnemyAtkLevel]
- cp $a
+ cp BASE_STAT_LEVEL + 3
jr nc, .asm_3910e
call AICheckEnemyMaxHP
@@ -2433,15 +2434,15 @@ AI_Smart_PsychUp:
; This block will always ret, since the comparisons to wPlayerEvaLevel capture every possible value
ld a, [wPlayerAccLevel]
- cp $6
+ cp BASE_STAT_LEVEL - 1
ret c
ld a, [wPlayerEvaLevel]
- cp $9
+ cp BASE_STAT_LEVEL + 2
ret c
ld a, [wPlayerEvaLevel]
- cp $8
+ cp BASE_STAT_LEVEL + 1
ret nc
; unused
@@ -2458,8 +2459,8 @@ AI_Smart_PsychUp:
AI_Smart_MirrorCoat:
push hl
ld hl, wPlayerUsedMoves
- ld c, $4
- ld b, $0
+ ld c, NUM_MOVES
+ ld b, 0
.asm_39159
ld a, [hli]
diff --git a/engine/events/happiness_egg.asm b/engine/events/happiness_egg.asm
index 85b6f710..bb2e949c 100755
--- a/engine/events/happiness_egg.asm
+++ b/engine/events/happiness_egg.asm
@@ -140,11 +140,13 @@ StepHappiness::
ret
DayCareStep::
+; Raise the experience of Day-Care Pokémon every step cycle.
+
ld a, [wDayCareMan]
bit DAYCAREMAN_HAS_MON_F, a
jr z, .day_care_lady
- ld a, [wBreedMon1Level]
+ ld a, [wBreedMon1Level] ; level
cp MAX_LEVEL
jr nc, .day_care_lady
ld hl, wBreedMon1Exp + 2 ; exp
@@ -196,7 +198,7 @@ DayCareStep::
callfar CheckBreedmonCompatibility
ld a, [wBreedingCompatibility]
cp 230
- ld b, 32 percent - 1
+ ld b, 31 percent + 1
jr nc, .okay
ld a, [wBreedingCompatibility]
cp 170
diff --git a/engine/events/pokerus/pokerus.asm b/engine/events/pokerus/pokerus.asm
index 63eb7fe1..99a5652c 100644
--- a/engine/events/pokerus/pokerus.asm
+++ b/engine/events/pokerus/pokerus.asm
@@ -26,8 +26,8 @@ GivePokerusAndConvertBerries:
and a
ret nz
ldh a, [hRandomSub]
- cp $3
- ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
+ cp 3
+ ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
ld a, [wPartyCount]
ld b, a
.randomMonSelectLoop
@@ -36,11 +36,11 @@ GivePokerusAndConvertBerries:
cp b
jr nc, .randomMonSelectLoop
ld hl, wPartyMon1PokerusStatus
- call GetPartyLocation ; get pokerus byte of random mon
+ call GetPartyLocation ; get pokerus byte of random mon
ld a, [hl]
and $f0
- ret nz ; if it already has pokerus, do nothing
-.randomPokerusLoop ; Simultaneously sample the strain and duration
+ ret nz ; if it already has pokerus, do nothing
+.randomPokerusLoop ; Simultaneously sample the strain and duration
call Random
and a
jr z, .randomPokerusLoop
@@ -62,20 +62,20 @@ GivePokerusAndConvertBerries:
.TrySpreadPokerus:
call Random
cp 33 percent + 1
- ret nc ; 1/3 chance
+ ret nc ; 1/3 chance
ld a, [wPartyCount]
cp 1
- ret z ; only one mon, nothing to do
+ ret z ; only one mon, nothing to do
ld c, [hl]
ld a, b
cp 2
- jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
+ jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
call Random
cp 50 percent + 1
- jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
+ jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
.checkFollowingMonsLoop
add hl, de
ld a, [hl]
@@ -83,8 +83,8 @@ GivePokerusAndConvertBerries:
jr z, .infectMon
ld c, a
and $3
- ret z ; if mon has cured pokerus, stop searching
- dec b ; go on to next mon
+ ret z ; if mon has cured pokerus, stop searching
+ dec b ; go on to next mon
ld a, b
cp 1
jr nz, .checkFollowingMonsLoop ; no more mons left
@@ -93,7 +93,7 @@ GivePokerusAndConvertBerries:
.checkPreviousMonsLoop
ld a, [wPartyCount]
cp b
- ret z ; no more mons
+ ret z ; no more mons
ld a, l
sub e
ld l, a
@@ -105,8 +105,8 @@ GivePokerusAndConvertBerries:
jr z, .infectMon
ld c, a
and $3
- ret z ; if mon has cured pokerus, stop searching
- inc b ; go on to next mon
+ ret z ; if mon has cured pokerus, stop searching
+ inc b ; go on to next mon
jr .checkPreviousMonsLoop
.infectMon
@@ -128,7 +128,7 @@ ConvertBerriesToBerryJuice:
bit STATUSFLAGS2_REACHED_GOLDENROD_F, [hl]
ret z
call Random
- cp 6 percent + 1 ; 1/16 chance
+ cp 1 out_of 16 ; 6.25% chance
ret nc
ld hl, wPartyMons
ld a, [wPartyCount]
diff --git a/engine/events/shuckle.asm b/engine/events/shuckle.asm
index db6db8f9..668a99b0 100755
--- a/engine/events/shuckle.asm
+++ b/engine/events/shuckle.asm
@@ -2,7 +2,7 @@ MANIA_OT_ID EQU 00518
GiveShuckle:
; Adding to the party.
- xor a
+ xor a ; PARTYMON
ld [wMonType], a
; Level 15 Shuckle.
@@ -63,6 +63,7 @@ GiveShuckle:
SpecialShuckleOT:
db "MANIA@"
+
SpecialShuckleNick:
db "SHUCKIE@"
diff --git a/engine/events/specials.asm b/engine/events/specials.asm
index f4b6437d..91ca4208 100755
--- a/engine/events/specials.asm
+++ b/engine/events/specials.asm
@@ -458,3 +458,6 @@ TrainerHouse:
ld a, [sMysteryGiftTrainerHouseFlag]
ld [wScriptVar], a
jp CloseSRAM
+
+; unused
+ nop
diff --git a/engine/events/whiteout.asm b/engine/events/whiteout.asm
index f8bfce12..635be636 100755
--- a/engine/events/whiteout.asm
+++ b/engine/events/whiteout.asm
@@ -61,11 +61,7 @@ GetWhiteoutSpawn:
ld d, a
ld a, [wLastSpawnMapNumber]
ld e, a
-
- ld a, $05
- ld hl, $5465
- rst $08
-
+ farcall IsSpawnPoint
ld a, c
jr c, .yes
xor a ; SPAWN_HOME
diff --git a/engine/gfx/load_push_oam.asm b/engine/gfx/load_push_oam.asm
index 641439ec..2e43c1ff 100644
--- a/engine/gfx/load_push_oam.asm
+++ b/engine/gfx/load_push_oam.asm
@@ -1,6 +1,3 @@
-DummyPredef1:
- ret
-
WriteOAMDMACodeToHRAM::
ld c, LOW(hTransferVirtualOAM)
ld b, .PushOAMEnd - .PushOAM
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index 29f72831..35a7cd6c 100755
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -872,7 +872,7 @@ MoonBallMultiplier:
pop bc
push bc
- ld a, BANK(EvosAttacksPointers)
+ ld a, BANK("Evolutions and Attacks")
call GetFarByte
cp EVOLVE_ITEM
pop bc
@@ -886,7 +886,7 @@ MoonBallMultiplier:
; No Pokémon evolve with Burn Heal,
; so Moon Balls always have a catch rate of 1×.
push bc
- ld a, BANK(EvosAttacksPointers)
+ ld a, BANK("Evolutions and Attacks")
call GetFarByte
cp MOON_STONE_RED ; BURN_HEAL
pop bc
diff --git a/engine/items/tmhm2.asm b/engine/items/tmhm2.asm
index 18218a06..eb3eb58e 100755
--- a/engine/items/tmhm2.asm
+++ b/engine/items/tmhm2.asm
@@ -1,107 +1,46 @@
-CanLearnTMHMMove: ; 11a25 (4:5a25)
+CanLearnTMHMMove:
ld a, [wCurPartySpecies]
ld [wCurSpecies], a
call GetBaseData
- ld hl, wd138
+ ld hl, wBaseTMHM
push hl
+
ld a, [wPutativeTMHMMove]
ld b, a
- ld c, $0
+ ld c, 0
ld hl, TMHMMoves
-.asm_11a3b
+.loop
ld a, [hli]
and a
- jr z, .asm_11a52
+ jr z, .end
cp b
jr z, .asm_11a45
inc c
- jr .asm_11a3b
+ jr .loop
.asm_11a45
pop hl
ld b, CHECK_FLAG
push de
- ld d, $0
+ ld d, 0
predef SmallFarFlagAction
pop de
ret
-.asm_11a52
+.end
pop hl
- ld c, $0
+ ld c, 0
ret
-GetTMHMMove: ; 11a56 (4:5a56)
- ld a, [wd151]
+GetTMHMMove:
+ ld a, [wTempTMHM]
dec a
ld hl, TMHMMoves
- ld b, $0
+ ld b, 0
ld c, a
add hl, bc
ld a, [hl]
- ld [wd151], a
+ ld [wTempTMHM], a
ret
-TMHMMoves:
- db DYNAMICPUNCH
- db HEADBUTT
- db CURSE
- db ROLLOUT
- db ROAR
- db TOXIC
- db ZAP_CANNON
- db ROCK_SMASH
- db PSYCH_UP
- db HIDDEN_POWER
- db SUNNY_DAY
- db SWEET_SCENT
- db SNORE
- db BLIZZARD
- db HYPER_BEAM
- db ICY_WIND
- db PROTECT
- db RAIN_DANCE
- db GIGA_DRAIN
- db ENDURE
- db FRUSTRATION
- db SOLARBEAM
- db IRON_TAIL
- db DRAGONBREATH
- db THUNDER
- db EARTHQUAKE
- db RETURN
- db DIG
- db PSYCHIC_M
- db SHADOW_BALL
- db MUD_SLAP
- db DOUBLE_TEAM
- db ICE_PUNCH
- db SWAGGER
- db SLEEP_TALK
- db SLUDGE_BOMB
- db SANDSTORM
- db FIRE_BLAST
- db SWIFT
- db DEFENSE_CURL
- db THUNDERPUNCH
- db DREAM_EATER
- db DETECT
- db REST
- db ATTRACT
- db THIEF
- db STEEL_WING
- db FIRE_PUNCH
- db FURY_CUTTER
- db NIGHTMARE
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WHIRLPOOL
- db WATERFALL
-
- db 0
- db 0
- db 0
- db 0
+INCLUDE "data/moves/tmhm_moves.asm"
diff --git a/engine/link/place_waiting_text.asm b/engine/link/place_waiting_text.asm
index dc1fe215..5c31c314 100755
--- a/engine/link/place_waiting_text.asm
+++ b/engine/link/place_waiting_text.asm
@@ -22,3 +22,6 @@ PlaceWaitingText::
.Waiting:
db "Waiting...!@"
+
+DummyPredef1:
+ ret
diff --git a/engine/math/math.asm b/engine/math/math.asm
index cdac2d37..d5df3c34 100755
--- a/engine/math/math.asm
+++ b/engine/math/math.asm
@@ -1,11 +1,10 @@
-_Multiply:: ; 67bd
-
+_Multiply::
; hMultiplier is one byte.
ld a, 8
ld b, a
xor a
- ldh [hProduct], a
+ ldh [hMultiplicand - 1], a
ldh [hMathBuffer + 1], a
ldh [hMathBuffer + 2], a
ldh [hMathBuffer + 3], a
@@ -37,7 +36,7 @@ _Multiply:: ; 67bd
ldh a, [hMathBuffer + 1]
ld c, a
- ldh a, [hProduct]
+ ldh a, [hMultiplicand - 1]
adc c
ldh [hMathBuffer + 1], a
@@ -59,9 +58,9 @@ _Multiply:: ; 67bd
rla
ldh [hMultiplicand + 0], a
- ldh a, [hProduct]
+ ldh a, [hMultiplicand - 1]
rla
- ldh [hProduct], a
+ ldh [hMultiplicand - 1], a
jr .loop
@@ -80,7 +79,7 @@ _Multiply:: ; 67bd
ret
-_Divide:: ; 681d
+_Divide::
xor a
ldh [hMathBuffer + 0], a
ldh [hMathBuffer + 1], a
@@ -173,18 +172,18 @@ _Divide:: ; 681d
.done
ldh a, [hDividend + 1]
- ldh [hDivisor], a
+ ldh [hRemainder], a
ldh a, [hMathBuffer + 4]
- ldh [hDividend + 3], a
+ ldh [hQuotient + 3], a
ldh a, [hMathBuffer + 3]
- ldh [hDividend + 2], a
+ ldh [hQuotient + 2], a
ldh a, [hMathBuffer + 2]
- ldh [hDividend + 1], a
+ ldh [hQuotient + 1], a
ldh a, [hMathBuffer + 1]
- ldh [hDividend + 0], a
+ ldh [hQuotient + 0], a
ret
diff --git a/engine/math/sine.asm b/engine/math/sine.asm
index e22d785a..5db3bd60 100644
--- a/engine/math/sine.asm
+++ b/engine/math/sine.asm
@@ -1,40 +1,7 @@
-_Sine:: ; 8ac9 (2:4ac9)
+_Sine::
+; a = d * sin(e * pi/256)
ld a, e
- and $3f
- cp $20
- jr nc, .negative
- call .GetSine
- ld a, h
- ret
-.negative
- and $1f
- call .GetSine
- ld a, h
- xor $ff
- inc a
- ret
-
-.GetSine: ; 8adf (2:4adf)
- ld e, a
- ld a, d
- ld d, $0
- ld hl, .SineWave
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $0
-.loop
- srl a
- jr nc, .no_add
- add hl, de
-.no_add
- sla e
- rl d
- and a
- jr nz, .loop
- ret
+ calc_sine_wave .SineWave
.SineWave:
sine_table $100
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index ece0a6eb..32b0f734 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -72,7 +72,7 @@ TitleScreen:
; Let LCD Stat know we're messing around with SCX
ld a, LOW(rSCX)
ldh [hLCDCPointer], a
- ld b, SCGB_0C
+ ld b, SCGB_GS_TITLE_SCREEN
call GetSGBLayout
call Function6341
ld de, MUSIC_TITLE
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 3a196508..01d49d21 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -274,7 +274,7 @@ WillObjectBumpIntoSomeoneElse:
ld e, [hl]
jr IsNPCAtCoord
-Function70f4:
+Unreferenced_Function70f4:
ldh a, [hMapObjectIndexBuffer]
call GetObjectStruct
call .CheckWillBeFacingNPC
@@ -473,7 +473,7 @@ IsObjectMovingOffEdgeOfScreen:
scf
ret
-Function71f2:
+Unreferenced_Function71f2:
ld a, [wPlayerStandingMapX]
ld d, a
ld a, [wPlayerStandingMapY]
diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm
index 165a8479..bdf23ec4 100755
--- a/engine/overworld/player_movement.asm
+++ b/engine/overworld/player_movement.asm
@@ -577,11 +577,14 @@ DoPlayerMovement::
; Standing
jr .update
-.d_down add hl, de
-.d_up add hl, de
-.d_left add hl, de
-.d_right add hl, de
-
+.d_down
+ add hl, de
+.d_up
+ add hl, de
+.d_left
+ add hl, de
+.d_right
+ add hl, de
.update
ld a, [hli]
ld [wWalkingDirection], a
diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm
index 28323eba..339f7ee0 100755
--- a/engine/overworld/player_object.asm
+++ b/engine/overworld/player_object.asm
@@ -107,8 +107,9 @@ RefreshPlayerCoords:
ld hl, wPlayerLastMapY
ld [hl], e
ld e, a
+; the next three lines are useless
ld a, [wObjectFollow_Leader]
- cp $0
+ cp PLAYER
ret nz
ret
@@ -509,7 +510,7 @@ CopyTempObjectToObjectStruct:
ld [hl], a
ret
-TrainerWalkToPlayer::
+TrainerWalkToPlayer:
ldh a, [hLastTalked]
call InitMovementBuffer
ld a, movement_step_sleep
diff --git a/engine/overworld/time.asm b/engine/overworld/time.asm
index d5c45cc4..a829cd4f 100755
--- a/engine/overworld/time.asm
+++ b/engine/overworld/time.asm
@@ -92,8 +92,8 @@ CheckDailyResetTimer::
ret nc
xor a
ld hl, wDailyFlags1
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; wDailyFlags1
+ ld [hl], a ; wDailyFlags2
jr RestartDailyResetTimer
StartBugContestTimer:
diff --git a/engine/pokemon/breeding.asm b/engine/pokemon/breeding.asm
index b891df82..fd5d9a82 100644
--- a/engine/pokemon/breeding.asm
+++ b/engine/pokemon/breeding.asm
@@ -462,18 +462,18 @@ GetEggMove:
ld a, BANK(EvosAttacksPointers)
call GetFarHalfword
.loop3
- ld a, BANK(EvosAttacksPointers)
+ ld a, BANK("Evolutions and Attacks")
call GetFarByte
inc hl
and a
jr nz, .loop3
.loop4
- ld a, BANK(EvosAttacksPointers)
+ ld a, BANK("Evolutions and Attacks")
call GetFarByte
and a
jr z, .inherit_tmhm
inc hl
- ld a, BANK(EvosAttacksPointers)
+ ld a, BANK("Evolutions and Attacks")
call GetFarByte
ld b, a
ld a, [de]
diff --git a/engine/pokemon/correct_nick_errors.asm b/engine/pokemon/correct_nick_errors.asm
index 44748a00..421bf92d 100644
--- a/engine/pokemon/correct_nick_errors.asm
+++ b/engine/pokemon/correct_nick_errors.asm
@@ -1,32 +1,52 @@
CorrectNickErrors::
+; error-check monster nick before use
+; must be a peace offering to gamesharkers
+
+; input: de = nick location
+
push bc
push de
ld b, MON_NAME_LENGTH
+
.checkchar
+; end of nick?
ld a, [de]
- cp "@"
- jr z, .done
+ cp "@" ; terminator
+ jr z, .end
+
+; check if this char is a text command
ld hl, .textcommands
dec hl
.loop
+; next entry
inc hl
+; reached end of commands table?
ld a, [hl]
- cp $ff
- jr z, .next
+ cp -1
+ jr z, .done
+
+; is the current char between this value (inclusive)...
ld a, [de]
cp [hl]
inc hl
jr c, .loop
+; ...and this one?
cp [hl]
jr nc, .loop
+
+; replace it with a "?"
ld a, "?"
ld [de], a
jr .loop
-.next
+.done
+; next char
inc de
+; reached end of nick without finding a terminator?
dec b
jr nz, .checkchar
+
+; change nick to "?@"
pop de
push de
ld a, "?"
@@ -34,7 +54,8 @@ CorrectNickErrors::
inc de
ld a, "@"
ld [de], a
-.done
+.end
+; if the nick has any errors at this point it's out of our hands
pop de
pop bc
ret
diff --git a/engine/pokemon/move_mon.asm b/engine/pokemon/move_mon.asm
index 0c50dd4e..b1988f68 100755
--- a/engine/pokemon/move_mon.asm
+++ b/engine/pokemon/move_mon.asm
@@ -1456,7 +1456,7 @@ CalcMonStatC:
add hl, bc
.sqrt_loop
xor a
- ldh [hMultiplicand], a
+ ldh [hMultiplicand + 0], a
ldh [hMultiplicand + 1], a
inc b
ld a, b
diff --git a/engine/smallflag.asm b/engine/smallflag.asm
index f7d1406f..04cbfcc2 100644
--- a/engine/smallflag.asm
+++ b/engine/smallflag.asm
@@ -1,6 +1,3 @@
-Functionc660:
- nop
-
SmallFarFlagAction:
; Perform action b on bit c in flag array hl.
; If checking a flag, check flag array d:hl unless d is 0.
diff --git a/engine/tilesets/map_palettes.asm b/engine/tilesets/map_palettes.asm
index c8a4a57d..858098e6 100644
--- a/engine/tilesets/map_palettes.asm
+++ b/engine/tilesets/map_palettes.asm
@@ -1,6 +1,6 @@
_SwapTextboxPalettes::
hlcoord 0, 0
- ld de, wAttrmap
+ decoord 0, 0, wAttrmap
ld b, SCREEN_HEIGHT
.loop
ld c, SCREEN_WIDTH
diff --git a/gfx/tileset_palette_maps.asm b/gfx/tileset_palette_maps.asm
index 0398f29f..d8ac900d 100644
--- a/gfx/tileset_palette_maps.asm
+++ b/gfx/tileset_palette_maps.asm
@@ -1,4 +1,13 @@
+tilepal: MACRO
+; pals
+rept _NARG / 2
+ dn PAL_BG_\2, PAL_BG_\1
+ shift
+ shift
+endr
+endm
+
INCLUDE "gfx/tilesets/palette_maps.asm"
Unknown85d7:
- ds 26, PAL_BG_ROOF
+ ds 26, $06 ; unused
diff --git a/macros.asm b/macros.asm
index a0e6e6cf..bb8088b4 100644
--- a/macros.asm
+++ b/macros.asm
@@ -12,20 +12,15 @@ INCLUDE "macros/scripts/events.asm"
INCLUDE "macros/scripts/text.asm"
INCLUDE "macros/scripts/movement.asm"
INCLUDE "macros/scripts/battle_commands.asm"
+INCLUDE "macros/scripts/battle_anims.asm"
INCLUDE "macros/scripts/trade_anims.asm"
-INCLUDE "macros/move_anim.asm"
-INCLUDE "macros/pic.asm"
-INCLUDE "macros/pals.asm"
-
INCLUDE "macros/legacy.asm"
dr: macro
IF DEF(_GOLD)
INCBIN "baserom-gold.gbc", \1, \2 - \1
-ELSE
-IF DEF(_SILVER)
+ELIF DEF(_SILVER)
INCBIN "baserom-silver.gbc", \1, \2 - \1
ENDC
-ENDC
ENDM
diff --git a/macros/data.asm b/macros/data.asm
index 932525eb..938a6cb3 100755
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -1,7 +1,30 @@
; Value macros
+; Many arbitrary percentages are simple base-10 or base-16 values:
+; - 10 = 4 percent
+; - 15 = 6 percent
+; - $10 = 6 percent + 1 = 7 percent - 1
+; - 20 = 8 percent
+; - 25 = 10 percent
+; - 30 = 12 percent
+; - 40 = 16 percent
+; - 50 = 20 percent - 1
+; - 60 = 24 percent - 1
+; - 70 = 28 percent - 1
+; - 80 = 31 percent + 1 = 32 percent - 1
+; - 85 = 33 percent + 1 = 34 percent - 1
+; - 100 = 39 percent + 1 = 40 percent - 2
+; - 120 = 47 percent + 1
+; - 123 = 49 percent - 1
+; - 160 = 63 percent
+; - 180 = 71 percent - 1 = 70 percent + 2
+; - 200 = 79 percent - 1
+; - 230 = 90 percent + 1
percent EQUS "* $ff / 100"
+; e.g. 1 out_of 2 == 50 percent + 1 == $80
+out_of EQUS "* $100 /"
+
; Constant data (db, dw, dl) macros
dwb: MACRO
diff --git a/macros/move_anim.asm b/macros/move_anim.asm
deleted file mode 100644
index 8df511b2..00000000
--- a/macros/move_anim.asm
+++ /dev/null
@@ -1,293 +0,0 @@
-anim_wait: macro
-if \1 >= $d0
- flip out
-endc
- db \1
- endm
-
- enum_start $d0
-
- enum anim_obj_command ; d0
-anim_obj: macro
- db anim_obj_command
- db \1 ; object
- db \2 ; x
- db \3 ; y
- db \4 ; param
- endm
-
- enum anim_1gfx_command ; d1
-anim_1gfx: macro
- db anim_1gfx_command
- db \1 ; gfx1
- endm
-
- enum anim_2gfx_command ; d2
-anim_2gfx: macro
- db anim_2gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- endm
-
- enum anim_3gfx_command ; d3
-anim_3gfx: macro
- db anim_3gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- endm
-
- enum anim_4gfx_command ; d4
-anim_4gfx: macro
- db anim_4gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- endm
-
- enum anim_5gfx_command ; d5
-anim_5gfx: macro
- db anim_5gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- db \5 ; gfx5
- endm
-
- enum anim_incobj_command ; d6
-anim_incobj: macro
- db anim_incobj_command
- db \1 ; id
- endm
-
- enum anim_setobj_command ; d7
-anim_setobj: macro
- db anim_setobj_command
- db \1 ; id
- db \2 ; obj
- endm
-
- enum anim_incbgeffect_command ; d8
-anim_incbgeffect: macro
- db anim_incbgeffect_command
- db \1 ; effect
- endm
-
- enum anim_battlergfx_2row_command ; d9
-anim_battlergfx_2row: macro
- db anim_battlergfx_2row_command
- endm
-
- enum anim_battlergfx_1row_command ; da
-anim_battlergfx_1row: macro
- db anim_battlergfx_1row_command
- endm
-
- enum anim_checkpokeball_command ; db
-anim_checkpokeball: macro
- db anim_checkpokeball_command
- endm
-
- enum anim_transform_command ; dc
-anim_transform: macro
- db anim_transform_command
- endm
-
- enum anim_raisesub_command ; dd
-anim_raisesub: macro
- db anim_raisesub_command
- endm
-
- enum anim_dropsub_command ; de
-anim_dropsub: macro
- db anim_dropsub_command
- endm
-
- enum anim_resetobp0_command ; df
-anim_resetobp0: macro
- db anim_resetobp0_command
- endm
-
- enum anim_sound_command ; e0
-anim_sound: macro
- db anim_sound_command
- db (\1 << 2) | \2 ; duration, tracks
- db \3 ; id
- endm
-
- enum anim_cry_command ; e1
-anim_cry: macro
- db anim_cry_command
- db \1 ; pitch
- endm
-
- enum anim_minimizeopp_command ; e2
-anim_minimizeopp: macro
- db anim_minimizeopp_command
- endm
-
- enum anim_oamon_command ; e3
-anim_oamon: macro
- db anim_oamon_command
- endm
-
- enum anim_oamoff_command ; e4
-anim_oamoff: macro
- db anim_oamoff_command
- endm
-
- enum anim_clearobjs_command ; e5
-anim_clearobjs: macro
- db anim_clearobjs_command
- endm
-
- enum anim_beatup_command ; e6
-anim_beatup: macro
- db anim_beatup_command
- endm
-
- enum anim_0xe7_command ; e7
-anim_0xe7: macro
- db anim_0xe7_command
- endm
-
- enum anim_updateactorpic_command ; e8
-anim_updateactorpic: macro
- db anim_updateactorpic_command
- endm
-
- enum anim_minimize_command ; e9
-anim_minimize: macro
- db anim_minimize_command
- endm
-
- enum anim_0xea_command ; ea
-anim_0xea: macro
- db anim_0xea_command
- endm
-
- enum anim_0xeb_command ; eb
-anim_0xeb: macro
- db anim_0xeb_command
- endm
-
- enum anim_0xec_command ; ec
-anim_0xec: macro
- db anim_0xec_command
- endm
-
- enum anim_0xed_command ; ed
-anim_0xed: macro
- db anim_0xed_command
- endm
-
- enum anim_if_param_and_command ; ee
-anim_if_param_and: macro
- db anim_if_param_and_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jumpuntil_command ; ef
-anim_jumpuntil: macro
- db anim_jumpuntil_command
- dw \1 ; address
- endm
-
- enum anim_bgeffect_command ; f0
-anim_bgeffect: macro
- db anim_bgeffect_command
- db \1 ; effect
- db \2 ; unknown
- db \3 ; unknown
- db \4 ; unknown
- endm
-
- enum anim_bgp_command ; f1
-anim_bgp: macro
- db anim_bgp_command
- db \1 ; colors
- endm
-
- enum anim_obp0_command ; f2
-anim_obp0: macro
- db anim_obp0_command
- db \1 ; colors
- endm
-
- enum anim_obp1_command ; f3
-anim_obp1: macro
- db anim_obp1_command
- db \1 ; colors
- endm
-
- enum anim_keepsprites_command ; f4
-anim_keepsprites: macro
- db anim_keepsprites_command
- endm
-
- enum anim_0xf5_command ; f5
-anim_0xf5: macro
- db anim_0xf5_command
- endm
-
- enum anim_0xf6_command ; f6
-anim_0xf6: macro
- db anim_0xf6_command
- endm
-
- enum anim_0xf7_command ; f7
-anim_0xf7: macro
- db anim_0xf7_command
- endm
-
- enum anim_if_param_equal_command ; f8
-anim_if_param_equal: macro
- db anim_if_param_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_setvar_command ; f9
-anim_setvar: macro
- db anim_setvar_command
- db \1 ; value
- endm
-
- enum anim_incvar_command ; fa
-anim_incvar: macro
- db anim_incvar_command
- endm
-
- enum anim_if_var_equal_command ; fb
-anim_if_var_equal: macro
- db anim_if_var_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jump_command ; fc
-anim_jump: macro
- db anim_jump_command
- dw \1 ; address
- endm
-
- enum anim_loop_command ; fd
-anim_loop: macro
- db anim_loop_command
- db \1 ; count
- dw \2 ; address
- endm
-
- enum anim_call_command ; fe
-anim_call: macro
- db anim_call_command
- dw \1 ; address
- endm
-
- enum anim_ret_command ; ff
-anim_ret: macro
- db anim_ret_command
- endm
diff --git a/macros/pals.asm b/macros/pals.asm
deleted file mode 100755
index d45dae3f..00000000
--- a/macros/pals.asm
+++ /dev/null
@@ -1,8 +0,0 @@
-tilepal: MACRO
-; pals
-rept _NARG / 2
- dn PAL_BG_\2, PAL_BG_\1
- shift
- shift
-endr
-endm
diff --git a/macros/pic.asm b/macros/pic.asm
deleted file mode 100644
index a01ce7a3..00000000
--- a/macros/pic.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-add_pic: MACRO
- db BANK(\1) - $36
- dw \1
-ENDM
diff --git a/macros/scripts/battle_anims.asm b/macros/scripts/battle_anims.asm
new file mode 100644
index 00000000..adb48e4a
--- /dev/null
+++ b/macros/scripts/battle_anims.asm
@@ -0,0 +1,302 @@
+anim_wait: MACRO
+if \1 >= $d0
+ fail "anim_wait argument must be less than $d0."
+endc
+ db \1
+ENDM
+
+; BattleAnimCommands indexes (see engine/battle_anims/anim_commands.asm)
+ enum_start $d0
+
+ enum anim_obj_command ; $d0
+anim_obj: MACRO
+ db anim_obj_command
+if _NARG <= 4
+ db \1 ; object
+ db \2 ; x
+ db \3 ; y
+ db \4 ; param
+else
+; LEGACY: Support the tile+offset format
+ db \1 ; object
+ db (\2) * 8 + (\3) ; x_tile, x
+ db (\4) * 8 + (\5) ; y_tile, y
+ db \6 ; param
+endc
+ENDM
+
+ enum anim_1gfx_command ; $d1
+anim_1gfx: MACRO
+ db anim_1gfx_command
+ db \1 ; gfx1
+ENDM
+
+ enum anim_2gfx_command ; $d2
+anim_2gfx: MACRO
+ db anim_2gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ENDM
+
+ enum anim_3gfx_command ; $d3
+anim_3gfx: MACRO
+ db anim_3gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ENDM
+
+ enum anim_4gfx_command ; $d4
+anim_4gfx: MACRO
+ db anim_4gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ENDM
+
+ enum anim_5gfx_command ; $d5
+anim_5gfx: MACRO
+ db anim_5gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ db \5 ; gfx5
+ENDM
+
+ enum anim_incobj_command ; $d6
+anim_incobj: MACRO
+ db anim_incobj_command
+ db \1 ; object_id
+ENDM
+
+ enum anim_setobj_command ; $d7
+anim_setobj: MACRO
+ db anim_setobj_command
+ db \1 ; object_id
+ db \2 ; value
+ENDM
+
+ enum anim_incbgeffect_command ; $d8
+anim_incbgeffect: MACRO
+ db anim_incbgeffect_command
+ db \1 ; effect
+ENDM
+
+ enum anim_battlergfx_2row_command ; $d9
+anim_battlergfx_2row: MACRO
+ db anim_battlergfx_2row_command
+ENDM
+
+ enum anim_battlergfx_1row_command ; $da
+anim_battlergfx_1row: MACRO
+ db anim_battlergfx_1row_command
+ENDM
+
+ enum anim_checkpokeball_command ; $db
+anim_checkpokeball: MACRO
+ db anim_checkpokeball_command
+ENDM
+
+ enum anim_transform_command ; $dc
+anim_transform: MACRO
+ db anim_transform_command
+ENDM
+
+ enum anim_raisesub_command ; $dd
+anim_raisesub: MACRO
+ db anim_raisesub_command
+ENDM
+
+ enum anim_dropsub_command ; $de
+anim_dropsub: MACRO
+ db anim_dropsub_command
+ENDM
+
+ enum anim_resetobp0_command ; $df
+anim_resetobp0: MACRO
+ db anim_resetobp0_command
+ENDM
+
+ enum anim_sound_command ; $e0
+anim_sound: MACRO
+ db anim_sound_command
+ db (\1 << 2) | \2 ; duration, tracks
+ db \3 ; sound_id
+ENDM
+
+ enum anim_cry_command ; $e1
+anim_cry: MACRO
+ db anim_cry_command
+ db \1 ; pitch
+ENDM
+
+ enum anim_minimizeopp_command ; $e2
+anim_minimizeopp: MACRO
+ db anim_minimizeopp_command
+ENDM
+
+ enum anim_oamon_command ; $e3
+anim_oamon: MACRO
+ db anim_oamon_command
+ENDM
+
+ enum anim_oamoff_command ; $e4
+anim_oamoff: MACRO
+ db anim_oamoff_command
+ENDM
+
+ enum anim_clearobjs_command ; $e5
+anim_clearobjs: MACRO
+ db anim_clearobjs_command
+ENDM
+
+ enum anim_beatup_command ; $e6
+anim_beatup: MACRO
+ db anim_beatup_command
+ENDM
+
+ enum anim_0xe7_command ; $e7
+anim_0xe7: MACRO
+ db anim_0xe7_command
+ENDM
+
+ enum anim_updateactorpic_command ; $e8
+anim_updateactorpic: MACRO
+ db anim_updateactorpic_command
+ENDM
+
+ enum anim_minimize_command ; $e9
+anim_minimize: MACRO
+ db anim_minimize_command
+ENDM
+
+ enum anim_0xea_command ; $ea
+anim_0xea: MACRO
+ db anim_0xea_command
+ENDM
+
+ enum anim_0xeb_command ; $eb
+anim_0xeb: MACRO
+ db anim_0xeb_command
+ENDM
+
+ enum anim_0xec_command ; $ec
+anim_0xec: MACRO
+ db anim_0xec_command
+ENDM
+
+ enum anim_0xed_command ; $ed
+anim_0xed: MACRO
+ db anim_0xed_command
+ENDM
+
+ enum anim_if_param_and_command ; $ee
+anim_if_param_and: MACRO
+ db anim_if_param_and_command
+ db \1 ; value
+ dw \2 ; address
+ENDM
+
+ enum anim_jumpuntil_command ; $ef
+anim_jumpuntil: MACRO
+ db anim_jumpuntil_command
+ dw \1 ; address
+ENDM
+
+ enum anim_bgeffect_command ; $f0
+anim_bgeffect: MACRO
+ db anim_bgeffect_command
+ db \1 ; effect
+ db \2 ; jumptable index
+ db \3 ; battle turn
+ db \4 ; unknown
+ENDM
+
+ enum anim_bgp_command ; $f1
+anim_bgp: MACRO
+ db anim_bgp_command
+ db \1 ; colors
+ENDM
+
+ enum anim_obp0_command ; $f2
+anim_obp0: MACRO
+ db anim_obp0_command
+ db \1 ; colors
+ENDM
+
+ enum anim_obp1_command ; $f3
+anim_obp1: MACRO
+ db anim_obp1_command
+ db \1 ; colors
+ENDM
+
+ enum anim_keepsprites_command ; $f4
+anim_keepsprites: MACRO
+ db anim_keepsprites_command
+ENDM
+
+ enum anim_0xf5_command ; $f5
+anim_0xf5: MACRO
+ db anim_0xf5_command
+ENDM
+
+ enum anim_0xf6_command ; $f6
+anim_0xf6: MACRO
+ db anim_0xf6_command
+ENDM
+
+ enum anim_0xf7_command ; $f7
+anim_0xf7: MACRO
+ db anim_0xf7_command
+ENDM
+
+ enum anim_if_param_equal_command ; $f8
+anim_if_param_equal: MACRO
+ db anim_if_param_equal_command
+ db \1 ; value
+ dw \2 ; address
+ENDM
+
+ enum anim_setvar_command ; $f9
+anim_setvar: MACRO
+ db anim_setvar_command
+ db \1 ; value
+ENDM
+
+ enum anim_incvar_command ; $fa
+anim_incvar: MACRO
+ db anim_incvar_command
+ENDM
+
+ enum anim_if_var_equal_command ; $fb
+anim_if_var_equal: MACRO
+ db anim_if_var_equal_command
+ db \1 ; value
+ dw \2 ; address
+ENDM
+
+ enum anim_jump_command ; $fc
+anim_jump: MACRO
+ db anim_jump_command
+ dw \1 ; address
+ENDM
+
+ enum anim_loop_command ; $fd
+anim_loop: MACRO
+ db anim_loop_command
+ db \1 ; count
+ dw \2 ; address
+ENDM
+
+ enum anim_call_command ; $fe
+anim_call: MACRO
+ db anim_call_command
+ dw \1 ; address
+ENDM
+
+ enum anim_ret_command ; $ff
+anim_ret: MACRO
+ db anim_ret_command
+ENDM
diff --git a/wram.asm b/wram.asm
index 23b0914d..d0eab6ac 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1828,7 +1828,7 @@ wBaseUnusedFrontpic:: dw ; d132
wBaseUnusedBackpic:: dw ; d134
wBaseGrowthRate:: db ; d136
wBaseEggGroups:: db ; d137
-wd138:: ds 1 ; d138
+wBaseTMHM:: ds 1 ; d138
wd139:: ds 1 ; d139
wd13a:: ds 1 ; d13a
wd13b:: ds 1 ; d13b