summaryrefslogtreecommitdiff
path: root/items
diff options
context:
space:
mode:
Diffstat (limited to 'items')
-rw-r--r--items/item_attributes.asm778
-rw-r--r--items/item_descriptions.asm1042
-rw-r--r--items/item_effects.asm3313
-rw-r--r--items/item_names.asm256
-rw-r--r--items/marts.asm442
-rwxr-xr-xitems/pokeball_wobble.asm88
6 files changed, 0 insertions, 5919 deletions
diff --git a/items/item_attributes.asm b/items/item_attributes.asm
deleted file mode 100644
index b0ba5febf..000000000
--- a/items/item_attributes.asm
+++ /dev/null
@@ -1,778 +0,0 @@
-item_attribute: MACRO
-; price, held effect, parameter, property, pocket, field menu, battle menu
- dw \1
- db \2, \3, \4, \5
- dn \6, \7
-ENDM
-
-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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; PROTEIN
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; IRON
- item_attribute 9800, 0, 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; CLEAR BELL
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_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
-
-; 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
-
-; 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_TRADE_EVOLVE, 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
-
-; 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
-
-; 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
-
-; 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
-
-; BLACKBELT
- 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
-
-; BLACKGLASSES
- 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
-
-; 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
-
-; NEVERMELTICE
- 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
-
-; MIRACLEBERRY
- 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
-
-; 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
-
-; RAGECANDYBAR
- item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-
-; GS BALL
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; BLUE CARD
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, 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
-
-; 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
-
-; EGG TICKET
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-
-; LOST ITEM
- item_attribute 0, 0, 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; 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
-
-; LITEBLUEMAIL
- item_attribute 50, 0, 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
-
-; TM01
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM02
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM03
- item_attribute 3000, 0, 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
-
-; TM05
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM06
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM07
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM08
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM09
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM10
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM11
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM12
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM13
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM14
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM15
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM16
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM17
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM18
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM19
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM20
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM21
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM22
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM23
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM24
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM25
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM26
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM27
- item_attribute 1000, 0, 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
-
-; TM29
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM30
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM31
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM32
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM33
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM34
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM35
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM36
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM37
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM38
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM39
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM40
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM41
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM42
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM43
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM44
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM45
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM46
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM47
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM48
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM49
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-
-; TM50
- item_attribute 2000, 0, 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
-
-; HM02
- item_attribute 0, 0, 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
-
-; HM04
- item_attribute 0, 0, 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
-
-; HM06
- item_attribute 0, 0, 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
diff --git a/items/item_descriptions.asm b/items/item_descriptions.asm
deleted file mode 100644
index 40e91b2c9..000000000
--- a/items/item_descriptions.asm
+++ /dev/null
@@ -1,1042 +0,0 @@
-PrintItemDescription: ; 0x1c8955
-; Print the description for item [CurSpecies] at de.
-
- ld a, [CurSpecies]
- cp TM01
- jr c, .not_a_tm
-
- ld [CurItem], a
- push de
- callba GetTMHMItemMove
- pop hl
- ld a, [wd265]
- ld [CurSpecies], a
- predef PrintMoveDesc
- ret
-
-.not_a_tm
- push de
- ld hl, ItemDescriptions
- ld a, [CurSpecies]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- jp PlaceString
-; 0x1c8987
-
-
-ItemDescriptions:
- dw MasterBallDesc
- dw UltraBallDesc
- dw BrightpowderDesc
- dw GreatBallDesc
- dw PokeBallDesc
- dw TeruSama1Desc
- dw BicycleDesc
- dw MoonStoneDesc
- dw AntidoteDesc
- dw BurnHealDesc
- dw IceHealDesc
- dw AwakeningDesc
- dw ParlyzHealDesc
- dw FullRestoreDesc
- dw MaxPotionDesc
- dw HyperPotionDesc
- dw SuperPotionDesc
- dw PotionDesc
- dw EscapeRopeDesc
- dw RepelDesc
- dw MaxElixerDesc
- dw FireStoneDesc
- dw ThunderStoneDesc
- dw WaterStoneDesc
- dw TeruSama2Desc
- dw HPUpDesc
- dw ProteinDesc
- dw IronDesc
- dw CarbosDesc
- dw LuckyPunchDesc
- dw CalciumDesc
- dw RareCandyDesc
- dw XAccuracyDesc
- dw LeafStoneDesc
- dw MetalPowderDesc
- dw NuggetDesc
- dw PokeDollDesc
- dw FullHealDesc
- dw ReviveDesc
- dw MaxReviveDesc
- dw GuardSpecDesc
- dw SuperRepelDesc
- dw MaxRepelDesc
- dw DireHitDesc
- dw TeruSama3Desc
- dw FreshWaterDesc
- dw SodaPopDesc
- dw LemonadeDesc
- dw XAttackDesc
- dw TeruSama4Desc
- dw XDefendDesc
- dw XSpeedDesc
- dw XSpecialDesc
- dw CoinCaseDesc
- dw ItemfinderDesc
- dw TeruSama5Desc
- dw ExpShareDesc
- dw OldRodDesc
- dw GoodRodDesc
- dw SilverLeafDesc
- dw SuperRodDesc
- dw PPUpDesc
- dw EtherDesc
- dw MaxEtherDesc
- dw ElixerDesc
- dw RedScaleDesc
- dw SecretPotionDesc
- dw SSTicketDesc
- dw MysteryEggDesc
- dw ClearBellDesc
- dw SilverWingDesc
- dw MoomooMilkDesc
- dw QuickClawDesc
- dw PsnCureBerryDesc
- dw GoldLeafDesc
- dw SoftSandDesc
- dw SharpBeakDesc
- dw PrzCureBerryDesc
- dw BurntBerryDesc
- dw IceBerryDesc
- dw PoisonBarbDesc
- dw KingsRockDesc
- dw BitterBerryDesc
- dw MintBerryDesc
- dw RedApricornDesc
- dw TinyMushroomDesc
- dw BigMushroomDesc
- dw SilverPowderDesc
- dw BluApricornDesc
- dw TeruSama6Desc
- dw AmuletCoinDesc
- dw YlwApricornDesc
- dw GrnApricornDesc
- dw CleanseTagDesc
- dw MysticWaterDesc
- dw TwistedSpoonDesc
- dw WhtApricornDesc
- dw BlackbeltDesc
- dw BlkApricornDesc
- dw TeruSama7Desc
- dw PnkApricornDesc
- dw BlackGlassesDesc
- dw SlowpokeTailDesc
- dw PinkBowDesc
- dw StickDesc
- dw SmokeBallDesc
- dw NeverMeltIceDesc
- dw MagnetDesc
- dw MiracleBerryDesc
- dw PearlDesc
- dw BigPearlDesc
- dw EverStoneDesc
- dw SpellTagDesc
- dw RageCandyBarDesc
- dw GSBallDesc
- dw BlueCardDesc
- dw MiracleSeedDesc
- dw ThickClubDesc
- dw FocusBandDesc
- dw TeruSama8Desc
- dw EnergyPowderDesc
- dw EnergyRootDesc
- dw HealPowderDesc
- dw RevivalHerbDesc
- dw HardStoneDesc
- dw LuckyEggDesc
- dw CardKeyDesc
- dw MachinePartDesc
- dw EggTicketDesc
- dw LostItemDesc
- dw StardustDesc
- dw StarPieceDesc
- dw BasementKeyDesc
- dw PassDesc
- dw TeruSama9Desc
- dw TeruSama10Desc
- dw TeruSama11Desc
- dw CharcoalDesc
- dw BerryJuiceDesc
- dw ScopeLensDesc
- dw TeruSama12Desc
- dw TeruSama13Desc
- dw MetalCoatDesc
- dw DragonFangDesc
- dw TeruSama14Desc
- dw LeftoversDesc
- dw TeruSama15Desc
- dw TeruSama16Desc
- dw TeruSama17Desc
- dw MysteryBerryDesc
- dw DragonScaleDesc
- dw BerserkGeneDesc
- dw TeruSama18Desc
- dw TeruSama19Desc
- dw TeruSama20Desc
- dw SacredAshDesc
- dw HeavyBallDesc
- dw FlowerMailDesc
- dw LevelBallDesc
- dw LureBallDesc
- dw FastBallDesc
- dw TeruSama21Desc
- dw LightBallDesc
- dw FriendBallDesc
- dw MoonBallDesc
- dw LoveBallDesc
- dw NormalBoxDesc
- dw GorgeousBoxDesc
- dw SunStoneDesc
- dw PolkadotBowDesc
- dw TeruSama22Desc
- dw UpGradeDesc
- dw BerryDesc
- dw GoldBerryDesc
- dw SquirtBottleDesc
- dw TeruSama23Desc
- dw ParkBallDesc
- dw RainbowWingDesc
- dw TeruSama24Desc
- dw BrickPieceDesc
- dw SurfMailDesc
- dw LiteBlueMailDesc
- dw PortraitMailDesc
- dw LovelyMailDesc
- dw EonMailDesc
- dw MorphMailDesc
- dw BlueSkyMailDesc
- dw MusicMailDesc
- dw MewMailDesc
- dw TeruSama25Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama29Desc
- dw TeruSama30Desc
- dw TeruSama31Desc
- dw TeruSama32Desc
- dw TeruSama33Desc
-
-MasterBallDesc:
- db "The best BALL. It"
- next "never misses.@"
-
-UltraBallDesc:
- db "A BALL with a high"
- next "rate of success.@"
-
-BrightpowderDesc:
- db "Lowers the foe's"
- next "accuracy. (HOLD)@"
-
-GreatBallDesc:
- db "A BALL with a de-"
- next "cent success rate.@"
-
-PokeBallDesc:
- db "An item for catch-"
- next "ing #MON.@"
-
-TeruSama1Desc:
- db "?@"
-
-BicycleDesc:
- db "A collapsible bike"
- next "for fast movement.@"
-
-MoonStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-AntidoteDesc:
- db "Cures poisoned"
- next "#MON.@"
-
-BurnHealDesc:
- db "Heals burned"
- next "#MON.@"
-
-IceHealDesc:
- db "Defrosts frozen"
- next "#MON.@"
-
-AwakeningDesc:
- db "Awakens sleeping"
- next "#MON.@"
-
-ParlyzHealDesc:
- db "Heals paralyzed"
- next "#MON.@"
-
-FullRestoreDesc:
- db "Fully restores HP"
- next "& status.@"
-
-MaxPotionDesc:
- db "Fully restores"
- next "#MON HP.@"
-
-HyperPotionDesc:
- db "Restores #MON"
- next "HP by 200.@"
-
-SuperPotionDesc:
- db "Restores #MON"
- next "HP by 50.@"
-
-PotionDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-EscapeRopeDesc:
- db "Use for escaping"
- next "from caves, etc.@"
-
-RepelDesc:
- db "Repels weak #-"
- next "MON for 100 steps.@"
-
-MaxElixerDesc:
- db "Fully restores the"
- next "PP of one #MON.@"
-
-FireStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-ThunderStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-WaterStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-TeruSama2Desc:
- db "?@"
-
-HPUpDesc:
- db "Raises the HP of"
- next "one #MON.@"
-
-ProteinDesc:
- db "Raises ATTACK of"
- next "one #MON.@"
-
-IronDesc:
- db "Raises DEFENSE of"
- next "one #MON.@"
-
-CarbosDesc:
- db "Raises SPEED of"
- next "one #MON.@"
-
-LuckyPunchDesc:
- db "Ups critical hit"
- next "ratio of CHANSEY.@"
-
-CalciumDesc:
- db "Ups SPECIAL stats"
- next "of one #MON.@"
-
-RareCandyDesc:
- db "Raises level of a"
- next "#MON by one.@"
-
-XAccuracyDesc:
- db "Raises accuracy."
- next "(1 BTL)@"
-
-LeafStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-MetalPowderDesc:
- db "Raises DEFENSE of"
- next "DITTO. (HOLD)@"
-
-NuggetDesc:
- db "Made of pure gold."
- next "Sell high.@"
-
-PokeDollDesc:
- db "Use to escape from"
- next "a wild #MON.@"
-
-FullHealDesc:
- db "Eliminates all"
- next "status problems.@"
-
-ReviveDesc:
- db "Restores a fainted"
- next "#MON to 1/2 HP.@"
-
-MaxReviveDesc:
- db "Fully restores a"
- next "fainted #MON.@"
-
-GuardSpecDesc:
- db "Prevents stats"
- next "reduction. (1 BTL)@"
-
-SuperRepelDesc:
- db "Repels weak #-"
- next "MON for 200 steps.@"
-
-MaxRepelDesc:
- db "Repels weak #-"
- next "MON for 250 steps.@"
-
-DireHitDesc:
- db "Ups critical hit"
- next "ratio. (1 BTL)@"
-
-TeruSama3Desc:
- db "?@"
-
-FreshWaterDesc:
- db "Restores #MON"
- next "HP by 50.@"
-
-SodaPopDesc:
- db "Restores #MON"
- next "HP by 60.@"
-
-LemonadeDesc:
- db "Restores #MON"
- next "HP by 80.@"
-
-XAttackDesc:
- db "Raises ATTACK."
- next "(1 BTL)@"
-
-TeruSama4Desc:
- db "?@"
-
-XDefendDesc:
- db "Raises DEFENSE."
- next "(1 BTL)@"
-
-XSpeedDesc:
- db "Raises SPEED."
- next "(1 BTL)@"
-
-XSpecialDesc:
- db "Raises SPECIAL"
- next "ATTACK. (1 BTL)@"
-
-CoinCaseDesc:
- db "Holds up to 9,999"
- next "game coins.@"
-
-ItemfinderDesc:
- db "Checks for unseen"
- next "items in the area.@"
-
-TeruSama5Desc:
- db "?@"
-
-ExpShareDesc:
- db "Shares battle EXP."
- next "Points. (HOLD)@"
-
-OldRodDesc:
- db "Use by water to"
- next "fish for #MON.@"
-
-GoodRodDesc:
- db "A good ROD for"
- next "catching #MON.@"
-
-SilverLeafDesc:
- db "A strange, silver-"
- next "colored leaf.@"
-
-SuperRodDesc:
- db "The best ROD for"
- next "catching #MON.@"
-
-PPUpDesc:
- db "Raises max PP of"
- next "a selected move.@"
-
-EtherDesc:
- db "Restores PP of one"
- next "move by 10.@"
-
-MaxEtherDesc:
- db "Fully restores PP"
- next "of one move.@"
-
-ElixerDesc:
- db "Restores PP of all"
- next "moves by 10.@"
-
-RedScaleDesc:
- db "A scale from the"
- next "red GYARADOS.@"
-
-SecretPotionDesc:
- db "Fully heals any"
- next "#MON.@"
-
-SSTicketDesc:
- db "A ticket for the"
- next "S.S.AQUA.@"
-
-MysteryEggDesc:
- db "An EGG obtained"
- next "from MR.#MON.@"
-
-ClearBellDesc:
- db "Makes a gentle"
- next "ringing.@"
-
-SilverWingDesc:
- db "A strange, silver-"
- next "colored feather.@"
-
-MoomooMilkDesc:
- db "Restores #MON"
- next "HP by 100.@"
-
-QuickClawDesc:
- db "Raises 1st strike"
- next "ratio. (HOLD)@"
-
-PsnCureBerryDesc:
- db "A self-cure for"
- next "poison. (HOLD)@"
-
-GoldLeafDesc:
- db "A strange, gold-"
- next "colored leaf.@"
-
-SoftSandDesc:
- db "Powers up ground-"
- next "type moves. (HOLD)@"
-
-SharpBeakDesc:
- db "Powers up flying-"
- next "type moves. (HOLD)@"
-
-PrzCureBerryDesc:
- db "A self-cure for"
- next "paralysis. (HOLD)@"
-
-BurntBerryDesc:
- db "A self-cure for"
- next "freezing. (HOLD)@"
-
-IceBerryDesc:
- db "A self-heal for a"
- next "burn. (HOLD)@"
-
-PoisonBarbDesc:
- db "Powers up poison-"
- next "type moves. (HOLD)@"
-
-KingsRockDesc:
- db "May make the foe"
- next "flinch. (HOLD)@"
-
-BitterBerryDesc:
- db "A self-cure for"
- next "confusion. (HOLD)@"
-
-MintBerryDesc:
- db "A self-awakening"
- next "for sleep. (HOLD)@"
-
-RedApricornDesc:
- db "A red APRICORN.@"
-
-TinyMushroomDesc:
- db "An ordinary mush-"
- next "room. Sell low.@"
-
-BigMushroomDesc:
- db "A rare mushroom."
- next "Sell high.@"
-
-SilverPowderDesc:
- db "Powers up bug-type"
- next "moves. (HOLD)@"
-
-BluApricornDesc:
- db "A blue APRICORN.@"
-
-TeruSama6Desc:
- db "?@"
-
-AmuletCoinDesc:
- db "Doubles monetary"
- next "earnings. (HOLD)@"
-
-YlwApricornDesc:
- db "A yellow APRICORN.@"
-
-GrnApricornDesc:
- db "A green APRICORN.@"
-
-CleanseTagDesc:
- db "Helps repel wild"
- next "#MON. (HOLD)@"
-
-MysticWaterDesc:
- db "Powers up water-"
- next "type moves. (HOLD)@"
-
-TwistedSpoonDesc:
- db "Powers up psychic-"
- next "type moves. (HOLD)@"
-
-WhtApricornDesc:
- db "A white APRICORN.@"
-
-BlackbeltDesc:
- db "Boosts fighting-"
- next "type moves. (HOLD)@"
-
-BlkApricornDesc:
- db "A black APRICORN."
- next "@"
-
-TeruSama7Desc:
- db "?@"
-
-PnkApricornDesc:
- db "A pink APRICORN."
- next "@"
-
-BlackGlassesDesc:
- db "Powers up dark-"
- next "type moves. (HOLD)@"
-
-SlowpokeTailDesc:
- db "Very tasty. Sell"
- next "high.@"
-
-PinkBowDesc:
- db "Powers up normal-"
- next "type moves. (HOLD)@"
-
-StickDesc:
- db "An ordinary stick."
- next "Sell low.@"
-
-SmokeBallDesc:
- db "Escape from wild"
- next "#MON. (HOLD)@"
-
-NeverMeltIceDesc:
- db "Powers up ice-type"
- next "moves. (HOLD)@"
-
-MagnetDesc:
- db "Boosts electric-"
- next "type moves. (HOLD)@"
-
-MiracleBerryDesc:
- db "Cures all status"
- next "problems. (HOLD)@"
-
-PearlDesc:
- db "A beautiful pearl."
- next "Sell low.@"
-
-BigPearlDesc:
- db "A big, beautiful"
- next "pearl. Sell high.@"
-
-EverStoneDesc:
- db "Stops evolution."
- next "(HOLD)@"
-
-SpellTagDesc:
- db "Powers up ghost-"
- next "type moves. (HOLD)@"
-
-RageCandyBarDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-GSBallDesc:
- db "The mysterious"
- next "BALL.@"
-
-BlueCardDesc:
- db "Card to save"
- next "points.@"
-
-MiracleSeedDesc:
- db "Powers up grass-"
- next "type moves. (HOLD)@"
-
-ThickClubDesc:
- db "A bone of some"
- next "sort. Sell low.@"
-
-FocusBandDesc:
- db "May prevent faint-"
- next "ing. (HOLD)@"
-
-TeruSama8Desc:
- db "?@"
-
-EnergyPowderDesc:
- db "Restores #MON"
- next "HP by 50. Bitter.@"
-
-EnergyRootDesc:
- db "Restores #MON"
- next "HP by 200. Bitter.@"
-
-HealPowderDesc:
- db "Cures all status"
- next "problems. Bitter.@"
-
-RevivalHerbDesc:
- db "Revives fainted"
- next "#MON. Bitter.@"
-
-HardStoneDesc:
- db "Powers up rock-"
- next "type moves. (HOLD)@"
-
-LuckyEggDesc:
- db "Earns extra EXP."
- next "points. (HOLD)@"
-
-CardKeyDesc:
- db "Opens shutters in"
- next "the RADIO TOWER.@"
-
-MachinePartDesc:
- db "A machine part for"
- next "the POWER PLANT.@"
-
-EggTicketDesc:
- db "May use at Golden-"
- next "rod trade corner.@"
-
-LostItemDesc:
- db "The # DOLL lost"
- next "by the COPYCAT.@"
-
-StardustDesc:
- db "Pretty, red sand."
- next "Sell high.@"
-
-StarPieceDesc:
- db "A hunk of red gem."
- next "Sell very high.@"
-
-BasementKeyDesc:
- db "Opens doors.@"
-
-PassDesc:
- db "A ticket for the"
- next "MAGNET TRAIN.@"
-
-TeruSama9Desc:
- db "?@"
-
-TeruSama10Desc:
- db "?@"
-
-TeruSama11Desc:
- db "?@"
-
-CharcoalDesc:
- db "Powers up fire-"
- next "type moves. (HOLD)@"
-
-BerryJuiceDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-ScopeLensDesc:
- db "Raises critical"
- next "hit ratio. (HOLD)@"
-
-TeruSama12Desc:
- db "?@"
-
-TeruSama13Desc:
- db "?@"
-
-MetalCoatDesc:
- db "Powers up steel-"
- next "type moves. (HOLD)@"
-
-DragonFangDesc:
- db "Powers up dragon-"
- next "type moves. (HOLD)@"
-
-TeruSama14Desc:
- db "?@"
-
-LeftoversDesc:
- db "Restores HP during"
- next "battle. (HOLD)@"
-
-TeruSama15Desc:
- db "?@"
-
-TeruSama16Desc:
- db "?@"
-
-TeruSama17Desc:
- db "?@"
-
-MysteryBerryDesc:
- db "A self-restore"
- next "for PP. (HOLD)@"
-
-DragonScaleDesc:
- db "A rare dragon-type"
- next "item.@"
-
-BerserkGeneDesc:
- db "Boosts ATTACK but"
- next "causes confusion.@"
-
-TeruSama18Desc:
- db "?@"
-
-TeruSama19Desc:
- db "?@"
-
-TeruSama20Desc:
- db "?@"
-
-SacredAshDesc:
- db "Fully revives all"
- next "fainted #MON.@"
-
-HeavyBallDesc:
- db "A BALL for catch-"
- next "ing heavy #MON.@"
-
-FlowerMailDesc:
- db "Flower-print MAIL."
- next "(HOLD)@"
-
-LevelBallDesc:
- db "A BALL for lower-"
- next "level #MON.@"
-
-LureBallDesc:
- db "A BALL for #MON"
- next "hooked by a ROD.@"
-
-FastBallDesc:
- db "A BALL for catch-"
- next "ing fast #MON.@"
-
-TeruSama21Desc:
- db "?@"
-
-LightBallDesc:
- db "An odd, electrical"
- next "orb. (HOLD)@"
-
-FriendBallDesc:
- db "A BALL that makes"
- next "#MON friendly.@"
-
-MoonBallDesc:
- db "A BALL for MOON"
- next "STONE evolvers.@"
-
-LoveBallDesc:
- db "For catching the"
- next "opposite gender.@"
-
-NormalBoxDesc:
- db "Open it and see"
- next "what's inside.@"
-
-GorgeousBoxDesc:
- db "Open it and see"
- next "what's inside.@"
-
-SunStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-PolkadotBowDesc:
- db "Powers up normal-"
- next "type moves. (HOLD)@"
-
-TeruSama22Desc:
- db "?@"
-
-UpGradeDesc:
- db "A mysterious box"
- next "made by SILPH CO.@"
-
-BerryDesc:
- db "A self-restore"
- next "item. (10HP, HOLD)@"
-
-GoldBerryDesc:
- db "A self-restore"
- next "item. (30HP, HOLD)@"
-
-SquirtBottleDesc:
- db "A bottle used for"
- next "watering plants.@"
-
-TeruSama23Desc:
- db "?@"
-
-ParkBallDesc:
- db "The Bug-Catching"
- next "Contest BALL.@"
-
-RainbowWingDesc:
- db "A mystical feather"
- next "of rainbow colors.@"
-
-TeruSama24Desc:
- db "?@"
-
-BrickPieceDesc:
- db "A rare chunk of"
- next "tile.@"
-
-SurfMailDesc:
- db "LAPRAS-print MAIL."
- next "(HOLD)@"
-
-LiteBlueMailDesc:
- db "DRATINI-print"
- next "MAIL. (HOLD)@"
-
-PortraitMailDesc:
- db "MAIL featuring the"
- next "holder's likeness.@"
-
-LovelyMailDesc:
- db "Heart-print MAIL."
- next "(HOLD)@"
-
-EonMailDesc:
- db "EEVEE-print MAIL."
- next "(HOLD)@"
-
-MorphMailDesc:
- db "DITTO-print MAIL."
- next "(HOLD)@"
-
-BlueSkyMailDesc:
- db "Sky-print MAIL."
- next "(HOLD)@"
-
-MusicMailDesc:
- db "NATU-print MAIL."
- next "(HOLD)@"
-
-MewMailDesc:
- db "MEW-print MAIL."
- next "(HOLD)@"
-
-TeruSama25Desc:
- db "?@"
-
-TeruSama26Desc:
- db "?@"
-
-TeruSama27Desc:
- db "?@"
-
-TeruSama28Desc:
- db "?@"
-
-TeruSama29Desc:
- db "?@"
-
-TeruSama30Desc:
- db "?@"
-
-TeruSama31Desc:
- db "?@"
-
-TeruSama32Desc:
- db "?@"
-
-TeruSama33Desc:
- db "?@"
diff --git a/items/item_effects.asm b/items/item_effects.asm
deleted file mode 100644
index c13568a5d..000000000
--- a/items/item_effects.asm
+++ /dev/null
@@ -1,3313 +0,0 @@
-_DoItemEffect:: ; e722
- ld a, [CurItem]
- ld [wd265], a
- call GetItemName
- call CopyName1
- ld a, 1
- ld [wItemEffectSucceeded], a
- ld a, [CurItem]
- dec a
- ld hl, ItemEffects
- rst JumpTable
- ret
-; e73c
-
-
-ItemEffects: ; e73c
- dw MasterBall
- dw UltraBall
- dw Brightpowder
- dw GreatBall
- dw PokeBall
- dw TownMap
- dw Bicycle
- dw MoonStone
- dw Antidote
- dw BurnHeal
- dw IceHeal
- dw Awakening
- dw ParlyzHeal
- dw FullRestore
- dw MaxPotion
- dw HyperPotion
- dw SuperPotion
- dw Potion
- dw EscapeRope
- dw Repel
- dw MaxElixer
- dw FireStone
- dw Thunderstone
- dw WaterStone
- dw Item19
- dw HPUp
- dw Protein
- dw Iron
- dw Carbos
- dw LuckyPunch
- dw Calcium
- dw RareCandy
- dw XAccuracy
- dw LeafStone
- dw MetalPowder
- dw Nugget
- dw PokeDoll
- dw FullHeal
- dw Revive
- dw MaxRevive
- dw GuardSpec
- dw SuperRepel
- dw MaxRepel
- dw DireHit
- dw Item2D
- dw FreshWater
- dw SodaPop
- dw Lemonade
- dw XAttack
- dw Item32
- dw XDefend
- dw XSpeed
- dw XSpecial
- dw CoinCase
- dw Itemfinder
- dw PokeFlute
- dw ExpShare
- dw OldRod
- dw GoodRod
- dw SilverLeaf
- dw SuperRod
- dw PPUp
- dw Ether
- dw MaxEther
- dw Elixer
- dw RedScale
- dw Secretpotion
- dw SSTicket
- dw MysteryEgg
- dw ClearBell
- dw SilverWing
- dw MoomooMilk
- dw QuickClaw
- dw Psncureberry
- dw GoldLeaf
- dw SoftSand
- dw SharpBeak
- dw Przcureberry
- dw BurntBerry
- dw IceBerry
- dw PoisonBarb
- dw KingsRock
- dw BitterBerry
- dw MintBerry
- dw RedApricorn
- dw Tinymushroom
- dw BigMushroom
- dw Silverpowder
- dw BluApricorn
- dw Item5A
- dw AmuletCoin
- dw YlwApricorn
- dw GrnApricorn
- dw CleanseTag
- dw MysticWater
- dw Twistedspoon
- dw WhtApricorn
- dw Blackbelt
- dw BlkApricorn
- dw Item64
- dw PnkApricorn
- dw Blackglasses
- dw Slowpoketail
- dw PinkBow
- dw Stick
- dw SmokeBall
- dw Nevermeltice
- dw Magnet
- dw Miracleberry
- dw Pearl
- dw BigPearl
- dw Everstone
- dw SpellTag
- dw Ragecandybar
- dw GsBall
- dw BlueCard
- dw MiracleSeed
- dw ThickClub
- dw FocusBand
- dw Item78
- dw Energypowder
- dw EnergyRoot
- dw HealPowder
- dw RevivalHerb
- dw HardStone
- dw LuckyEgg
- dw CardKey
- dw MachinePart
- dw EggTicket
- dw LostItem
- dw Stardust
- dw StarPiece
- dw BasementKey
- dw Pass
- dw Item87
- dw Item88
- dw Item89
- dw Charcoal
- dw BerryJuice
- dw ScopeLens
- dw Item8D
- dw Item8E
- dw MetalCoat
- dw DragonFang
- dw Item91
- dw Leftovers
- dw Item93
- dw Item94
- dw Item95
- dw Mysteryberry
- dw DragonScale
- dw BerserkGene
- dw Item99
- dw Item9A
- dw Item9B
- dw SacredAsh
- dw HeavyBall
- dw FlowerMail
- dw LevelBall
- dw LureBall
- dw FastBall
- dw ItemA2
- dw LightBall
- dw FriendBall
- dw MoonBall
- dw LoveBall
- dw NormalBox
- dw GorgeousBox
- dw SunStone
- dw PolkadotBow
- dw ItemAB
- dw UpGrade
- dw Berry
- dw GoldBerry
- dw Squirtbottle
- dw ItemB0
- dw ParkBall
- dw RainbowWing
- dw ItemB3
-; e8a2
-
-
-MasterBall:
-UltraBall:
-GreatBall:
-PokeBall:
-HeavyBall:
-LevelBall:
-LureBall:
-FastBall:
-FriendBall:
-MoonBall:
-LoveBall:
-ParkBall: ; e8a2
- ld a, [wBattleMode]
- dec a
- jp nz, UseBallInTrainerBattle
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nz, .room_in_party
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- call CloseSRAM
- jp z, Ball_BoxIsFullMessage
-
-.room_in_party
- xor a
- ld [wWildMon], a
- ld a, [CurItem]
- cp PARK_BALL
- call nz, ReturnToBattle_UseBall
-
- ld hl, Options
- res NO_TEXT_SCROLL, [hl]
- ld hl, UsedItemText
- call PrintText
-
- ld a, [EnemyMonCatchRate]
- ld b, a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .catch_without_fail
- ld a, [CurItem]
- cp MASTER_BALL
- jp z, .catch_without_fail
- ld a, [CurItem]
- ld c, a
- ld hl, BallMultiplierFunctionTable
-
-.get_multiplier_loop
- ld a, [hli]
- cp $ff
- jr z, .skip_or_return_from_ball_fn
- cp c
- jr z, .call_ball_function
- inc hl
- inc hl
- jr .get_multiplier_loop
-
-.call_ball_function
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .skip_or_return_from_ball_fn
- push de
- jp hl
-
-.skip_or_return_from_ball_fn
- ld a, [CurItem]
- cp LEVEL_BALL
- ld a, b
- jp z, .skip_hp_calc
-
- ld a, b
- ld [hMultiplicand + 2], a
-
- ld hl, EnemyMonHP
- ld b, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld e, [hl]
- sla c
- rl b
-
- ld h, d
- ld l, e
- add hl, de
- add hl, de
- ld d, h
- ld e, l
- ld a, d
- and a
- jr z, .okay_1
-
- srl d
- rr e
- srl d
- rr e
- srl b
- rr c
- srl b
- rr c
-
- ld a, c
- and a
- jr nz, .okay_1
- ld c, $1
-.okay_1
- ld b, e
-
- push bc
- ld a, b
- sub c
- ld [hMultiplier], a
- xor a
- ld [hDividend + 0], a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- call Multiply
- pop bc
-
- ld a, b
- ld [hDivisor], a
- ld b, $4
- call Divide
-
- ld a, [hQuotient + 2]
- and a
- jr nz, .statuscheck
- ld a, 1
-.statuscheck
-; This routine is buggy. It was intended that SLP and FRZ provide a higher
-; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
-; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
-; benefit.
-; Uncomment the line below to fix this.
- ld b, a
- ld a, [EnemyMonStatus]
- and 1 << FRZ | SLP
- ld c, 10
- jr nz, .addstatus
- ; ld a, [EnemyMonStatus]
- and a
- ld c, 5
- jr nz, .addstatus
- ld c, 0
-.addstatus
- ld a, b
- add c
- jr nc, .max_1
- ld a, $ff
-.max_1
-
- ld d, a
- push de
-
- ; BUG: callba overwrites a,
- ; and GetItemHeldEffect takes b anyway.
-
- ; This is probably the reason
- ; the HELD_CATCH_CHANCE effect
- ; is never used.
-
- ; Uncomment the line below to fix.
-
- ld a, [BattleMonItem]
-; ld b, a
- callba GetItemHeldEffect
- ld a, b
- cp HELD_CATCH_CHANCE
-
- pop de
- ld a, d
-
- jr nz, .skip_hp_calc
- add c
- jr nc, .skip_hp_calc
- ld a, $ff
-.skip_hp_calc
-
- ld b, a
- ld [Buffer1], a
- call Random
-
- cp b
- ld a, 0
- jr z, .catch_without_fail
- jr nc, .fail_to_catch
-
-.catch_without_fail
- ld a, [EnemyMonSpecies]
-
-.fail_to_catch
- ld [wWildMon], a
- ld c, 20
- call DelayFrames
-
- ld a, [CurItem]
- cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before
- jr c, .not_kurt_ball
- ld a, POKE_BALL
-.not_kurt_ball
- ld [wBattleAnimParam], a
-
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimIDLo], a
- ld a, d
- ld [FXAnimIDHi], a
- xor a
- ld [hBattleTurn], a
- ld [Buffer2], a
- ld [wNumHits], a
- predef PlayBattleAnim
-
- ld a, [wWildMon]
- and a
- jr nz, .caught
- ld a, [Buffer2]
- cp $1
- ld hl, Text_NoShake
- jp z, .shake_and_break_free
- cp $2
- ld hl, Text_OneShake
- jp z, .shake_and_break_free
- cp $3
- ld hl, Text_TwoShakes
- jp z, .shake_and_break_free
- cp $4
- ld hl, Text_ThreeShakes
- jp z, .shake_and_break_free
-.caught
-
- ld hl, EnemyMonStatus
- ld a, [hli]
- push af
- inc hl
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- push hl
- ld hl, EnemyMonItem
- ld a, [hl]
- push af
- push hl
- ld hl, EnemySubStatus5
- ld a, [hl]
- push af
- set SUBSTATUS_TRANSFORMED, [hl]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .ditto
- jr .not_ditto
-
-.ditto
- ld a, DITTO
- ld [TempEnemyMonSpecies], a
- jr .load_data
-
-.not_ditto
- set SUBSTATUS_TRANSFORMED, [hl]
- ld hl, wEnemyBackupDVs
- ld a, [EnemyMonDVs]
- ld [hli], a
- ld a, [EnemyMonDVs + 1]
- ld [hl], a
-
-.load_data
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, [EnemyMonLevel]
- ld [CurPartyLevel], a
- callba LoadEnemyMon
-
- pop af
- ld [EnemySubStatus5], a
-
- pop hl
- pop af
- ld [hl], a
- pop hl
- pop af
- ld [hld], a
- pop af
- ld [hld], a
- dec hl
- pop af
- ld [hl], a
-
- ld hl, EnemySubStatus5
- bit SUBSTATUS_TRANSFORMED, [hl]
- jr nz, .Transformed
- ld hl, wWildMonMoves
- ld de, EnemyMonMoves
- ld bc, NUM_MOVES
- call CopyBytes
-
- ld hl, wWildMonPP
- ld de, EnemyMonPP
- ld bc, NUM_MOVES
- call CopyBytes
-.Transformed:
-
- ld a, [EnemyMonSpecies]
- ld [wWildMon], a
- ld [CurPartySpecies], a
- ld [wd265], a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .FinishTutorial
-
- callba TrainerRankings_WildMonsCaught
-
- ld hl, Text_GotchaMonWasCaught
- call PrintText
-
- call ClearSprites
-
- ld a, [wd265]
- dec a
- call CheckCaughtMon
-
- ld a, c
- push af
- ld a, [wd265]
- dec a
- call SetSeenAndCaughtMon
- pop af
- and a
- jr nz, .skip_pokedex
-
- call CheckReceivedDex
- jr z, .skip_pokedex
-
- ld hl, Text_AddedToPokedex
- call PrintText
-
- call ClearSprites
-
- ld a, [EnemyMonSpecies]
- ld [wd265], a
- predef NewPokedexEntry
-
-.skip_pokedex
- ld a, [BattleType]
- cp BATTLETYPE_CONTEST
- jp z, .catch_bug_contest_mon
- cp BATTLETYPE_CELEBI
- jr nz, .not_celebi
- ld hl, wBattleResult
- set 6, [hl]
-.not_celebi
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr z, .SendToPC
-
- xor a ; PARTYMON
- ld [MonType], a
- call ClearSprites
-
- predef TryAddMonToParty
-
- callba SetCaughtData
-
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipPartyMonFriendBall
-
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
-
- ld a, FRIEND_BALL_HAPPINESS
- ld [hl], a
-.SkipPartyMonFriendBall:
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jp c, .return_from_capture
-
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
-
- ld d, h
- ld e, l
- push de
- xor a ; PARTYMON
- ld [MonType], a
- ld b, 0
- callba NamingScreen
-
- call RotateThreePalettesRight
-
- call LoadStandardFont
-
- pop hl
- ld de, StringBuffer1
- call InitName
-
- jp .return_from_capture
-
-.SendToPC:
- call ClearSprites
-
- predef SentPkmnIntoBox
-
- callba SetBoxMonCaughtData
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
-
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- jr nz, .BoxNotFullYet
- ld hl, wBattleResult
- set 7, [hl]
-.BoxNotFullYet:
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipBoxMonFriendBall
- ; Bug: overwrites the happiness of the first mon in the box!
- ld a, FRIEND_BALL_HAPPINESS
- ld [sBoxMon1Happiness], a
-.SkipBoxMonFriendBall:
- call CloseSRAM
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jr c, .SkipBoxMonNickname
-
- xor a
- ld [CurPartyMon], a
- ld a, BOXMON
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- ld b, $0
- callba NamingScreen
-
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, wMonOrItemNameBuffer
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- ld hl, sBoxMonNicknames
- ld de, StringBuffer1
- call InitName
-
- call CloseSRAM
-
-.SkipBoxMonNickname:
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, sBoxMonNicknames
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- call CloseSRAM
-
- ld hl, Text_SentToBillsPC
- call PrintText
-
- call RotateThreePalettesRight
- call LoadStandardFont
- jr .return_from_capture
-
-.catch_bug_contest_mon
- callba BugContest_SetCaughtContestMon
- jr .return_from_capture
-
-.FinishTutorial:
- ld hl, Text_GotchaMonWasCaught
-
-.shake_and_break_free
- call PrintText
- call ClearSprites
-
-.return_from_capture
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- ret z
- cp BATTLETYPE_DEBUG
- ret z
- cp BATTLETYPE_CONTEST
- jr z, .used_park_ball
-
- ld a, [wWildMon]
- and a
- jr z, .toss
-
- call ClearBGPalettes
- call ClearTileMap
-
-.toss
- ld hl, NumItems
- inc a
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-
-.used_park_ball
- ld hl, wParkBallsRemaining
- dec [hl]
- ret
-; ec0a
-
-
-BallMultiplierFunctionTable:
-; table of routines that increase or decrease the catch rate based on
-; which ball is used in a certain situation.
- dbw ULTRA_BALL, UltraBallMultiplier
- dbw GREAT_BALL, GreatBallMultiplier
- dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY
- dbw HEAVY_BALL, HeavyBallMultiplier
- dbw LEVEL_BALL, LevelBallMultiplier
- dbw LURE_BALL, LureBallMultiplier
- dbw FAST_BALL, FastBallMultiplier
- dbw MOON_BALL, MoonBallMultiplier
- dbw LOVE_BALL, LoveBallMultiplier
- dbw PARK_BALL, ParkBallMultiplier
- db $ff
-
-UltraBallMultiplier:
-; multiply catch rate by 2
- sla b
- ret nc
- ld b, $ff
- ret
-
-SafariBallMultiplier:
-GreatBallMultiplier:
-ParkBallMultiplier:
-; multiply catch rate by 1.5
- ld a, b
- srl a
- add b
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-GetPokedexEntryBank:
- push hl
- push de
- ld a, [EnemyMonSpecies]
- rlca
- rlca
- and 3
- ld hl, .PokedexEntryBanks
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.PokedexEntryBanks:
-
-GLOBAL PokedexEntries1
-GLOBAL PokedexEntries2
-GLOBAL PokedexEntries3
-GLOBAL PokedexEntries4
-
- db BANK(PokedexEntries1)
- db BANK(PokedexEntries2)
- db BANK(PokedexEntries3)
- db BANK(PokedexEntries4)
-
-HeavyBallMultiplier:
-; subtract 20 from catch rate if weight < 102.4 kg
-; else add 0 to catch rate if weight < 204.8 kg
-; else add 20 to catch rate if weight < 307.2 kg
-; else add 30 to catch rate if weight < 409.6 kg
-; else add 40 to catch rate (never happens)
- ld a, [EnemyMonSpecies]
- ld hl, PokedexDataPointerTable
- dec a
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, BANK(PokedexDataPointerTable)
- call GetFarHalfword
-
-.SkipText:
- call GetPokedexEntryBank
- call GetFarByte
- inc hl
- cp "@"
- jr nz, .SkipText
-
- call GetPokedexEntryBank
- push bc
- inc hl
- inc hl
- call GetFarHalfword
-
- srl h
- rr l
- ld b, h
- ld c, l
-
- rept 4
- srl b
- rr c
- endr
- call .subbc
-
- srl b
- rr c
- call .subbc
-
- ld a, h
- pop bc
- jr .compare
-
-.subbc
- ; subtract bc from hl
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- pop bc
- ret
-
-.compare
- ld c, a
- cp 1024 >> 8 ; 102.4 kg
- jr c, .lightmon
-
- ld hl, .WeightsTable
-.lookup
- ld a, c
- cp [hl]
- jr c, .heavymon
- inc hl
- inc hl
- jr .lookup
-
-.heavymon
- inc hl
- ld a, b
- add [hl]
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-.lightmon
- ld a, b
- sub 20
- ld b, a
- ret nc
- ld b, $1
- ret
-
-.WeightsTable:
-; weight factor, boost
- db 2048 >> 8, 0
- db 3072 >> 8, 20
- db 4096 >> 8, 30
- db 65280 >> 8, 40
-
-LureBallMultiplier:
-; multiply catch rate by 3 if this is a fishing rod battle
- ld a, [BattleType]
- cp BATTLETYPE_FISH
- ret nz
-
- ld a, b
- add a
- jr c, .max
-
- add b
- jr nc, .done
-.max
- ld a, $ff
-.done
- ld b, a
- ret
-
-MoonBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if mon evolves with moon stone
-; Reality: no boost
-
-GLOBAL EvosAttacks
-GLOBAL EvosAttacksPointers
-
- push bc
- ld a, [TempEnemyMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EvosAttacksPointers
- add hl, bc
- add hl, bc
- ld a, BANK(EvosAttacksPointers)
- call GetFarHalfword
- pop bc
-
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp EVOLVE_ITEM
- pop bc
- ret nz
-
- inc hl
- inc hl
- inc hl
-
-; Moon Stone's constant from Pokémon Red is used.
-; No Pokémon evolve with Burn Heal,
-; so Moon Balls always have a catch rate of 1×.
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp MOON_STONE_RED ; BURN_HEAL
- pop bc
- ret nz
-
- sla b
- jr c, .max
- sla b
- jr nc, .done
-.max
- ld b, $ff
-.done
- ret
-
-LoveBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 8 if mons are of same species, different sex
-; Reality: multiply catch rate by 8 if mons are of same species, same sex
-
- ; does species match?
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld a, [TempBattleMonSpecies]
- cp c
- ret nz
-
- ; check player mon species
- push bc
- ld a, [TempBattleMonSpecies]
- ld [CurPartySpecies], a
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callba GetGender
- jr c, .done1 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .playermale
- inc d ; female
-.playermale
-
- ; check wild mon species
- push de
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, WILDMON
- ld [MonType], a
- callba GetGender
- jr c, .done2 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .wildmale
- inc d ; female
-.wildmale
-
- ld a, d
- pop de
- cp d
- pop bc
- ret nz ; for the intended effect, this should be “ret z”
-
- sla b
- jr c, .max
- sla b
- jr c, .max
- sla b
- ret nc
-.max
- ld b, $ff
- ret
-
-.done2
- pop de
-
-.done1
- pop bc
- ret
-
-FastBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if enemy mon is in one of the three
-; FleeMons tables.
-; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
-; the first FleeMons table.
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld hl, FleeMons
- ld d, 3
-
-.loop
- ld a, BANK(FleeMons)
- call GetFarByte
-
- inc hl
- cp -1
- jr z, .next
- cp c
- jr nz, .next ; for the intended effect, this should be “jr nz, .loop”
- sla b
- jr c, .max
-
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-.next
- dec d
- jr nz, .loop
- ret
-
-LevelBallMultiplier:
-; multiply catch rate by 8 if player mon level / 4 > enemy mon level
-; multiply catch rate by 4 if player mon level / 2 > enemy mon level
-; multiply catch rate by 2 if player mon level > enemy mon level
- ld a, [BattleMonLevel]
- ld c, a
- ld a, [EnemyMonLevel]
- cp c
- ret nc ; if player is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/2 is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/4 is lower level, we're done here
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-; These two texts were carried over from gen 1.
-; They are not used in gen 2, and are dummied out.
-
-Text_RBY_CatchMarowak: ; 0xedab
- ; It dodged the thrown BALL! This #MON can't be caught!
- text_jump UnknownText_0x1c5a5a
- db "@"
-; 0xedb0
-
-Text_RBY_NoShake: ; 0xedb0
- ; You missed the #MON!
- text_jump UnknownText_0x1c5a90
- db "@"
-; 0xedb5
-
-Text_NoShake: ; 0xedb5
- ; Oh no! The #MON broke free!
- text_jump UnknownText_0x1c5aa6
- db "@"
-; 0xedba
-
-Text_OneShake: ; 0xedba
- ; Aww! It appeared to be caught!
- text_jump UnknownText_0x1c5ac3
- db "@"
-; 0xedbf
-
-Text_TwoShakes: ; 0xedbf
- ; Aargh! Almost had it!
- text_jump UnknownText_0x1c5ae3
- db "@"
-; 0xedc4
-
-Text_ThreeShakes: ; 0xedc4
- ; Shoot! It was so close too!
- text_jump UnknownText_0x1c5afa
- db "@"
-; 0xedc9
-
-Text_GotchaMonWasCaught: ; 0xedc9
- ; Gotcha! @ was caught!@ @
- text_jump UnknownText_0x1c5b17
- start_asm
- call WaitSFX
- push bc
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_CAPTURE
- call PlayMusic
- pop bc
- ld hl, TextJump_Waitbutton
- ret
-; ede6
-
-TextJump_Waitbutton: ; 0xede6
- ; @
- text_jump Text_Waitbutton_2
- db "@"
-; 0xedeb
-
-Text_SentToBillsPC: ; 0xedeb
- ; was sent to BILL's PC.
- text_jump UnknownText_0x1c5b38
- db "@"
-; 0xedf0
-
-Text_AddedToPokedex: ; 0xedf0
- ; 's data was newly added to the #DEX.@ @
- text_jump UnknownText_0x1c5b53
- db "@"
-; 0xedf5
-
-Text_AskNicknameNewlyCaughtMon: ; 0xedf5
- ; Give a nickname to @ ?
- text_jump UnknownText_0x1c5b7f
- db "@"
-; 0xedfa
-
-ReturnToBattle_UseBall: ; edfa (3:6dfa)
- callba _ReturnToBattle_UseBall
- ret
-
-TownMap: ; ee01
- callba PokegearMap
- ret
-; ee08
-
-
-Bicycle: ; ee08
- callba BikeFunction
- ret
-; ee0f
-
-
-MoonStone:
-FireStone:
-Thunderstone:
-WaterStone:
-LeafStone:
-SunStone: ; ee0f
- ld b, PARTYMENUACTION_EVO_STONE
- call UseItem_SelectMon
-
- jp c, .DecidedNotToUse
-
- ld a, MON_ITEM
- call GetPartyParamLocation
-
- ld a, [hl]
- cp EVERSTONE
- jr z, .NoEffect
-
- ld a, $1
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- ld a, [wMonTriedToEvolve]
- and a
- jr z, .NoEffect
-
- jp UseDisposableItem
-
-.NoEffect:
- call WontHaveAnyEffectMessage
-
-.DecidedNotToUse:
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; ee3d
-
-
-HPUp:
-Protein:
-Iron:
-Carbos:
-Calcium: ; ee3d
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- call GetStatExpRelativePointer
-
- ld a, MON_STAT_EXP
- call GetPartyParamLocation
-
- add hl, bc
- ld a, [hl]
- cp 100
- jr nc, NoEffectMessage
-
- add 10
- ld [hl], a
- call UpdateStatsAfterItem
-
- call GetStatExpRelativePointer
-
- ld hl, StatStrings
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer2
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
-
- call Play_SFX_FULL_HEAL
-
- ld hl, Text_StatRose
- call PrintText
-
- ld c, HAPPINESS_USEDITEM
- callba ChangeHappiness
-
- jp UseDisposableItem
-
-
-NoEffectMessage: ; ee83
- ld hl, WontHaveAnyEffectText
- call PrintText
- jp ClearPalettes
-; ee8c
-
-
-UpdateStatsAfterItem: ; ee8c
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_STAT_EXP - 1
- call GetPartyParamLocation
- ld b, $1
- predef_jump CalcPkmnStats
-; ee9f
-
-RareCandy_StatBooster_ExitMenu: ; ee9f
- xor a
- ld [wItemEffectSucceeded], a
- jp ClearPalettes
-; eea6
-
-
-Text_StatRose: ; 0xeea6
- ; 's @ rose.
- text_jump UnknownText_0x1c5b9a
- db "@"
-; 0xeeab
-
-
-StatStrings: ; eeab
- dw .health
- dw .attack
- dw .defense
- dw .speed
- dw .special
-
-.health db "HEALTH@"
-.attack db "ATTACK@"
-.defense db "DEFENSE@"
-.speed db "SPEED@"
-.special db "SPECIAL@"
-; eed9
-
-
-GetStatExpRelativePointer: ; eed9
- ld a, [CurItem]
- ld hl, Table_eeeb
-.next
- cp [hl]
- inc hl
- jr z, .got_it
- inc hl
- jr .next
-
-.got_it
- ld a, [hl]
- ld c, a
- ld b, 0
- ret
-; eeeb
-
-Table_eeeb: ; eeeb
- db HP_UP, MON_HP_EXP - MON_STAT_EXP
- db PROTEIN, MON_ATK_EXP - MON_STAT_EXP
- db IRON, MON_DEF_EXP - MON_STAT_EXP
- db CARBOS, MON_SPD_EXP - MON_STAT_EXP
- db CALCIUM, MON_SPC_EXP - MON_STAT_EXP
-; eef5
-
-
-RareCandy_StatBooster_GetParameters: ; eef5
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- ld [wd265], a
- ld a, MON_LEVEL
- call GetPartyParamLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- call GetBaseData
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- ret
-; 0xef14
-
-
-RareCandy: ; ef14
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- ld a, MON_LEVEL
- call GetPartyParamLocation
-
- ld a, [hl]
- cp MAX_LEVEL
- jp nc, NoEffectMessage
-
- inc a
- ld [hl], a
- ld [CurPartyLevel], a
- push de
- ld d, a
- callba CalcExpAtLevel
-
- pop de
- ld a, MON_EXP
- call GetPartyParamLocation
-
- ld a, [hMultiplicand]
- ld [hli], a
- ld a, [hMultiplicand + 1]
- ld [hli], a
- ld a, [hMultiplicand + 2]
- ld [hl], a
-
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- push bc
- call UpdateStatsAfterItem
-
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
-
- pop bc
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- dec hl
- ld a, [hl]
- add c
- ld [hld], a
- ld a, [hl]
- adc b
- ld [hl], a
- callba LevelUpHappinessMod
-
- ld a, PARTYMENUTEXT_LEVEL_UP
- call ItemActionText
-
- xor a ; PARTYMON
- ld [MonType], a
- predef CopyPkmnToTempMon
-
- hlcoord 9, 0
- ld b, 10
- ld c, 9
- call TextBox
-
- hlcoord 11, 1
- ld bc, $0004
- predef PrintTempMonStats
-
- call WaitPressAorB_BlinkCursor
-
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurPartySpecies]
- ld [wd265], a
- predef LearnLevelMoves
-
- xor a
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- jp UseDisposableItem
-; efad
-
-
-HealPowder: ; efad
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, StatusHealer_ExitMenu
-
- call UseStatusHealer
-
- cp $0
- jr nz, .asm_efc9
- ld c, HAPPINESS_BITTERPOWDER
- callba ChangeHappiness
-
- call LooksBitterMessage
-
- ld a, $0
-
-.asm_efc9
- jp StatusHealer_Jumptable
-; efcc
-
-
-Antidote:
-BurnHeal:
-IceHeal:
-Awakening:
-ParlyzHeal:
-FullHeal:
-Psncureberry:
-Przcureberry:
-BurntBerry:
-IceBerry:
-MintBerry:
-Miracleberry: ; efcc
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
-FullyHealStatus: ; efd4
- call UseStatusHealer
- jp StatusHealer_Jumptable
-; efda
-
-
-UseStatusHealer: ; efda (3:6fda)
- call IsMonFainted
- ld a, $1
- ret z
- call GetItemHealingAction
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld a, [hl]
- and c
- jr nz, .good
- call IsItemUsedOnConfusedMon
- ld a, $1
- ret nc
- ld b, PARTYMENUTEXT_HEAL_CONFUSION
-.good
- xor a
- ld [hl], a
- ld a, b
- ld [PartyMenuActionText], a
- call HealStatus
- call Play_SFX_FULL_HEAL
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, $0
- ret
-
-IsItemUsedOnConfusedMon: ; f009 (3:7009)
- call IsItemUsedOnBattleMon
- jr nc, .nope
- ld a, [PlayerSubStatus3]
- bit SUBSTATUS_CONFUSED, a
- jr z, .nope
- ld a, c
- cp $ff
- jr nz, .nope
- scf
- ret
-
-.nope
- and a
- ret
-
-BattlemonRestoreHealth: ; f01e (3:701e)
- call IsItemUsedOnBattleMon
- ret nc
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [BattleMonHP], a
- ld a, [hld]
- ld [BattleMonHP + 1], a
- ret
-
-HealStatus: ; f030 (3:7030)
- call IsItemUsedOnBattleMon
- ret nc
- xor a
- ld [BattleMonStatus], a
- ld hl, PlayerSubStatus5
- res SUBSTATUS_TOXIC, [hl]
- ld hl, PlayerSubStatus1
- res SUBSTATUS_NIGHTMARE, [hl]
- call GetItemHealingAction
- ld a, c
- cp %11111111
- jr nz, .not_full_heal
- ld hl, PlayerSubStatus3
- res SUBSTATUS_CONFUSED, [hl]
-.not_full_heal
- push bc
- callba CalcPlayerStats
- pop bc
- ret
-
-GetItemHealingAction: ; f058 (3:7058)
- push hl
- ld a, [CurItem]
- ld hl, .healingactions
- ld bc, 3
-.next
- cp [hl]
- jr z, .found_it
- add hl, bc
- jr .next
-
-.found_it
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hl]
- ld c, a
- cp %11111111
- pop hl
- ret
-; f071 (3:7071)
-
-.healingactions ; f071
-; item, party menu action text, status
- db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
- db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
- db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
- db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
- db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
- db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
- db -1, 0, 0
-; f09e
-
-StatusHealer_Jumptable: ; f09e (3:709e)
- ld hl, .dw
- rst JumpTable
- ret
-
-.dw ; f0a3 (3:70a3)
- dw StatusHealer_ClearPalettes
- dw StatusHealer_NoEffect
- dw StatusHealer_ExitMenu
-
-
-RevivalHerb: ; f0a9
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- cp 0
- jr nz, .asm_f0c5
-
- ld c, HAPPINESS_REVIVALHERB
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.asm_f0c5
- jp StatusHealer_Jumptable
-; f0c8
-
-
-Revive:
-MaxRevive: ; f0c8
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- jp StatusHealer_Jumptable
-; f0d6
-
-
-RevivePokemon: ; f0d6
- call IsMonFainted
- ld a, 1
- ret nz
- ld a, [wBattleMode]
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld d, 0
- ld hl, wBattleParticipantsIncludingFainted
- ld b, CHECK_FLAG
- predef FlagPredef
- ld a, c
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld hl, wBattleParticipantsNotFainted
- ld b, SET_FLAG
- predef FlagPredef
-
-.skip_to_revive
- xor a
- ld [Danger], a
- ld a, [CurItem]
- cp REVIVE
- jr z, .revive_half_hp
-
- call ReviveFullHP
- jr .finish_revive
-
-.revive_half_hp
- call ReviveHalfHP
-
-.finish_revive
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_REVIVE
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f128
-
-
-FullRestore: ; f128
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call IsMonFainted
- jp z, StatusHealer_NoEffect
-
- call IsMonAtFullHealth
- jr c, .NotAtFullHealth
-
- jp FullyHealStatus
-
-.NotAtFullHealth:
- call .FullRestore
- jp StatusHealer_Jumptable
-; f144
-
-
-.FullRestore: ; f144
- xor a
- ld [Danger], a
- call ReviveFullHP
- ld a, MON_STATUS
- call GetPartyParamLocation
- xor a
- ld [hli], a
- ld [hl], a
- call HealStatus
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f16a
-
-
-BitterBerry: ; f16a
- ld hl, PlayerSubStatus3
- bit SUBSTATUS_CONFUSED, [hl]
- ld a, 1
- jr z, .done
-
- res SUBSTATUS_CONFUSED, [hl]
- xor a
- ld [hBattleTurn], a
- call UseItemText
-
- ld hl, ConfusedNoMoreText
- call StdBattleTextBox
-
- ld a, 0
-
-.done
- jp StatusHealer_Jumptable
-; f186
-
-
-MaxPotion:
-HyperPotion:
-SuperPotion:
-Potion:
-FreshWater:
-SodaPop:
-Lemonade:
-MoomooMilk:
-Ragecandybar:
-BerryJuice:
-Berry:
-GoldBerry: ; f186
- call ItemRestoreHP
- jp StatusHealer_Jumptable
-; f18c
-
-
-Energypowder: ; f18c
- ld c, HAPPINESS_BITTERPOWDER
- jr EnergypowderEnergyRootCommon
-; f190
-
-EnergyRoot: ; f190
- ld c, HAPPINESS_ENERGYROOT
-; f192
-
-EnergypowderEnergyRootCommon: ; f192
- push bc
- call ItemRestoreHP
- pop bc
- cp 0
- jr nz, .skip_happiness
-
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.skip_happiness
- jp StatusHealer_Jumptable
-; f1a9
-
-
-ItemRestoreHP: ; f1a9 (3:71a9)
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- ld a, 2
- ret c
-
- call IsMonFainted
- ld a, 1
- ret z
-
- call IsMonAtFullHealth
- ld a, 1
- ret nc
-
- xor a
- ld [Danger], a
- call GetHealingItemAmount
- call RestoreHealth
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-
-HealHP_SFX_GFX: ; f1db (3:71db)
- push de
- ld de, SFX_POTION
- call WaitPlaySFX
- pop de
- ld a, [CurPartyMon]
- hlcoord 11, 0
- ld bc, SCREEN_WIDTH * 2
- call AddNTimes
- ld a, $2
- ld [wWhichHPBar], a
- predef_jump AnimateHPBar
-
-UseItem_SelectMon: ; f1f9 (3:71f9)
- call .SelectMon
- ret c
-
- ld a, [CurPartySpecies]
- cp EGG
- jr nz, .not_egg
-
- call CantUseOnEggMessage
- scf
- ret
-
-.not_egg
- and a
- ret
-
-.SelectMon: ; f20b (3:720b)
- ld a, b
- ld [PartyMenuActionText], a
- push hl
- push de
- push bc
- call ClearBGPalettes
- call ChoosePkmnToUseItemOn
- pop bc
- pop de
- pop hl
- ret
-
-ChoosePkmnToUseItemOn: ; f21c (3:721c)
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- callba InitPartyMenuGFX
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- callba PartyMenuSelect
- ret
-
-ItemActionText: ; f24a (3:724a)
- ld [PartyMenuActionText], a
- ld a, [CurPartySpecies]
- push af
- ld a, [CurPartyMon]
- push af
- push hl
- push de
- push bc
- callba WritePartyMenuTilemap
- callba PrintPartyMenuActionText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- pop bc
- pop de
- pop hl
- pop af
- ld [CurPartyMon], a
- pop af
- ld [CurPartySpecies], a
- ret
-
-ItemActionTextWaitButton: ; f279 (3:7279)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, TileMapEnd - TileMap
- ld a, " "
- call ByteFill
- ld a, [PartyMenuActionText]
- call ItemActionText
- ld a, $1
- ld [hBGMapMode], a
- ld c, 50
- call DelayFrames
- jp WaitPressAorB_BlinkCursor
-
-StatusHealer_NoEffect: ; f299 (3:7299)
- call WontHaveAnyEffectMessage
- jr StatusHealer_ClearPalettes
-
-StatusHealer_ExitMenu: ; f29e (3:729e)
- xor a
- ld [wItemEffectSucceeded], a
-StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
- call ClearPalettes
- ret
-
-IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
- ld a, [wBattleMode]
- and a
- ret z
- ld a, [CurPartyMon]
- push hl
- ld hl, CurBattleMon
- cp [hl]
- pop hl
- jr nz, .nope
- scf
- ret
-
-.nope
- xor a
- ret
-
-ReviveHalfHP: ; f2ba (3:72ba)
- call LoadHPFromBuffer1
- srl d
- rr e
- jr ContinueRevive
-
-ReviveFullHP: ; f2c3 (3:72c3)
- call LoadHPFromBuffer1
-ContinueRevive: ; f2c6 (3:72c6)
- ld a, MON_HP
- call GetPartyParamLocation
- ld [hl], d
- inc hl
- ld [hl], e
- jp LoadCurHPIntoBuffer5
-
-RestoreHealth: ; f2d1 (3:72d1)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hl], a
- jr c, .full_hp
- call LoadCurHPIntoBuffer5
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
- ld a, [de]
- sub [hl]
- dec de
- dec hl
- ld a, [de]
- sbc [hl]
- jr c, .finish
-.full_hp
- call ReviveFullHP
-.finish
- ret
-
-RemoveHP: ; f2f9 (3:72f9)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- sub e
- ld [hld], a
- ld a, [hl]
- sbc d
- ld [hl], a
- jr nc, .okay
- xor a
- ld [hld], a
- ld [hl], a
-.okay
- call LoadCurHPIntoBuffer5
- ret
-
-IsMonFainted: ; f30d (3:730d)
- push de
- call LoadMaxHPToBuffer1
- call LoadCurHPToBuffer3
- call LoadHPFromBuffer3
- ld a, d
- or e
- pop de
- ret
-
-IsMonAtFullHealth: ; f31b (3:731b)
- call LoadHPFromBuffer3
- ld h, d
- ld l, e
- call LoadHPFromBuffer1
- ld a, l
- sub e
- ld a, h
- sbc d
- ret
-
-LoadCurHPIntoBuffer5: ; f328 (3:7328)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer6], a
- ld a, [hl]
- ld [Buffer5], a
- ret
-; f336 (3:7336)
-
-LoadHPIntoBuffer5: ; f336
- ld a, d
- ld [Buffer6], a
- ld a, e
- ld [Buffer5], a
- ret
-; f33f
-
-LoadHPFromBuffer5: ; f33f
- ld a, [Buffer6]
- ld d, a
- ld a, [Buffer5]
- ld e, a
- ret
-; f348
-
-LoadCurHPToBuffer3: ; f348 (3:7348)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer4], a
- ld a, [hl]
- ld [Buffer3], a
- ret
-
-LoadHPFromBuffer3: ; f356 (3:7356)
- ld a, [Buffer4]
- ld d, a
- ld a, [Buffer3]
- ld e, a
- ret
-
-LoadMaxHPToBuffer1: ; f35f (3:735f)
- push hl
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- pop hl
- ret
-
-LoadHPFromBuffer1: ; f36f (3:736f)
- ld a, [Buffer2]
- ld d, a
- ld a, [Buffer1]
- ld e, a
- ret
-
-GetOneFifthMaxHP: ; f378 (3:7378)
- push bc
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 1]
- ld d, a
- ld a, [hQuotient + 2]
- ld e, a
- pop bc
- ret
-
-GetHealingItemAmount: ; f395 (3:7395)
- push hl
- ld a, [CurItem]
- ld hl, .Healing
- ld d, a
-.next
- ld a, [hli]
- cp -1
- jr z, .NotFound
- cp d
- jr z, .done
- inc hl
- inc hl
- jr .next
-
-.NotFound:
- scf
-.done
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- ret
-; f3af (3:73af)
-
-.Healing: ; f3af
- dbw FRESH_WATER, 50
- dbw SODA_POP, 60
- dbw LEMONADE, 80
- dbw HYPER_POTION, 200
- dbw SUPER_POTION, 50
- dbw POTION, 20
- dbw MAX_POTION, 999
- dbw FULL_RESTORE, 999
- dbw MOOMOO_MILK, 100
- dbw BERRY, 10
- dbw GOLD_BERRY, 30
- dbw ENERGYPOWDER, 50
- dbw ENERGY_ROOT, 200
- dbw RAGECANDYBAR, 20
- dbw BERRY_JUICE, 20
- dbw -1, 0
-; f3df
-
-Softboiled_MilkDrinkFunction: ; f3df (3:73df)
-; Softboiled/Milk Drink in the field
- ld a, [wPartyMenuCursor]
- dec a
- ld b, a
- call .SelectMilkDrinkRecipient ; select pokemon
- jr c, .skip
- ld a, b
- ld [CurPartyMon], a
- call IsMonFainted
- call GetOneFifthMaxHP
- call RemoveHP
- push bc
- call HealHP_SFX_GFX
- pop bc
- call GetOneFifthMaxHP
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- call RestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- call ItemActionText
- call JoyWaitAorB
-.skip
- ld a, b
- inc a
- ld [wPartyMenuCursor], a
- ret
-
-.SelectMilkDrinkRecipient: ; f419 (3:7419)
-.loop
- push bc
- ld a, PARTYMENUACTION_HEALING_ITEM
- ld [PartyMenuActionText], a
- call ChoosePkmnToUseItemOn
- pop bc
- jr c, .set_carry
- ld a, [wPartyMenuCursor]
- dec a
- ld c, a
- ld a, b
- cp c
- jr z, .cant_use ; chose the same mon as user
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- jr z, .cant_use
- call IsMonAtFullHealth
- jr nc, .cant_use
- xor a
- ret
-
-.set_carry
- scf
- ret
-
-.cant_use
- push bc
- ld hl, .Text_CantBeUsed
- call MenuTextBoxBackup
- pop bc
- jr .loop
-; f44a (3:744a)
-
-.Text_CantBeUsed: ; 0xf44a
- ; That can't be used on this #MON.
- text_jump UnknownText_0x1c5bac
- db "@"
-; 0xf44f
-
-
-EscapeRope: ; f44f
- xor a
- ld [wItemEffectSucceeded], a
- callba EscapeRopeFunction
-
- ld a, [wItemEffectSucceeded]
- cp 1
- call z, UseDisposableItem
- ret
-; f462
-
-
-SuperRepel: ; f462
- ld b, 200
- jr UseRepel
-; f466
-
-MaxRepel: ; f466
- ld b, 250
- jr UseRepel
-; f466
-
-Repel: ; f46a
- ld b, 100
-; f46c
-
-UseRepel: ; f46c
- ld a, [wRepelEffect]
- and a
- ld hl, TextJump_RepelUsedEarlierIsStillInEffect
- jp nz, PrintText
-
- ld a, b
- ld [wRepelEffect], a
- jp UseItemText
-
-
-TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
- ; The REPEL used earlier is still in effect.
- text_jump Text_RepelUsedEarlierIsStillInEffect
- db "@"
-; 0xf482
-
-
-XAccuracy: ; f482
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_X_ACCURACY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_X_ACCURACY, [hl]
- jp UseItemText
-; f48f
-
-
-PokeDoll: ; f48f
- ld a, [wBattleMode]
- dec a
- jr nz, .asm_f4a6
- inc a
- ld [wForcedSwitch], a
- ld a, [wBattleResult]
- and 3 << 6
- or $2
- ld [wBattleResult], a
- jp UseItemText
-
-.asm_f4a6
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f4ab
-
-
-GuardSpec: ; f4ab
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_MIST, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_MIST, [hl]
- jp UseItemText
-; f4b8
-
-
-DireHit: ; f4b8
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_FOCUS_ENERGY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_FOCUS_ENERGY, [hl]
- jp UseItemText
-; f4c5
-
-
-XAttack:
-XDefend:
-XSpeed:
-XSpecial: ; f4c5
- call UseItemText
-
- ld a, [CurItem]
- ld hl, .x_item_table
-
-.loop
- cp [hl]
- jr z, .got_it
- inc hl
- inc hl
- jr .loop
-
-.got_it
- inc hl
- ld b, [hl]
- xor a
- ld [hBattleTurn], a
- ld [AttackMissed], a
- ld [EffectFailed], a
- callba CheckIfStatCanBeRaised
- call WaitSFX
-
- callba BattleCommand_StatUpMessage
- callba BattleCommand_StatUpFailText
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- ld c, HAPPINESS_USEDXITEM
- callba ChangeHappiness
- ret
-; f504
-
-.x_item_table ; f504
- db X_ATTACK, ATTACK
- db X_DEFEND, DEFENSE
- db X_SPEED, SPEED
- db X_SPECIAL, SP_ATTACK
-; f50c
-
-
-PokeFlute: ; f50c
- ld a, [wBattleMode]
- and a
- jr nz, .dummy
-.dummy
-
- xor a
- ld [wd002], a
-
- ld b, $ff ^ SLP
-
- ld hl, PartyMon1Status
- call .CureSleep
-
- ld a, [wBattleMode]
- cp WILD_BATTLE
- jr z, .skip_otrainer
- ld hl, OTPartyMon1Status
- call .CureSleep
-.skip_otrainer
-
- ld hl, BattleMonStatus
- ld a, [hl]
- and b
- ld [hl], a
- ld hl, EnemyMonStatus
- ld a, [hl]
- and b
- ld [hl], a
-
- ld a, [wd002]
- and a
- ld hl, .CatchyTune
- jp z, PrintText
- ld hl, .PlayedTheFlute
- call PrintText
-
- ld a, [Danger]
- and $80
- jr nz, .dummy2
-.dummy2
- ld hl, .AllSleepingMonWokeUp
- jp PrintText
-
-
-.CureSleep:
- ld de, PARTYMON_STRUCT_LENGTH
- ld c, PARTY_LENGTH
-
-.loop
- ld a, [hl]
- push af
- and SLP
- jr z, .not_asleep
- ld a, 1
- ld [wd002], a
-.not_asleep
- pop af
- and b
- ld [hl], a
- add hl, de
- dec c
- jr nz, .loop
- ret
-; f56c
-
-
-.CatchyTune: ; 0xf56c
- ; Played the # FLUTE. Now, that's a catchy tune!
- text_jump UnknownText_0x1c5bf9
- db "@"
-; 0xf571
-
-.AllSleepingMonWokeUp: ; 0xf571
- ; All sleeping #MON woke up.
- text_jump UnknownText_0x1c5c28
- db "@"
-; 0xf576
-
-.PlayedTheFlute: ; 0xf576
- ; played the # FLUTE.@ @
- text_jump UnknownText_0x1c5c44
- start_asm
- ld a, [wBattleMode]
- and a
- jr nz, .battle
-
- push de
- ld de, SFX_POKEFLUTE
- call WaitPlaySFX
- call WaitSFX
- pop de
-
-.battle
- jp PokeFluteTerminatorCharacter
-; f58f
-
-
-BlueCard: ; f58f
- ld hl, .bluecardtext
- jp MenuTextBoxWaitButton
-
-.bluecardtext
- text_jump UnknownText_0x1c5c5e
- db "@"
-; f59a
-
-
-CoinCase: ; f59a
- ld hl, .coincasetext
- jp MenuTextBoxWaitButton
-
-.coincasetext
- text_jump UnknownText_0x1c5c7b
- db "@"
-; f5a5
-
-
-OldRod: ; f5a5
- ld e, $0
- jr UseRod
-; f5a9
-
-GoodRod: ; f5a9
- ld e, $1
- jr UseRod
-; f5ad
-
-SuperRod: ; f5ad
- ld e, $2
- jr UseRod
-; f5b1
-
-UseRod: ; f5b1
- callba FishFunction
- ret
-; f5b8
-
-
-Itemfinder: ; f5b8
- callba ItemFinder
- ret
-; f5bf
-
-
-MaxElixer:
-PPUp:
-Ether:
-MaxEther:
-Elixer:
-Mysteryberry: ; f5bf
- ld a, [CurItem]
- ld [wd002], a
-
-.loop
- ; Party Screen opens to choose on which Pkmn to use the Item
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, PPRestoreItem_Cancel
-
-.loop2
- ld a, [wd002]
- cp MAX_ELIXER
- jp z, Elixer_RestorePPofAllMoves
- cp ELIXER
- jp z, Elixer_RestorePPofAllMoves
-
- ld hl, TextJump_RaiseThePPOfWhichMove
- ld a, [wd002]
- cp PP_UP
- jr z, .ppup
- ld hl, TextJump_RestoreThePPOfWhichMove
-
-.ppup
- call PrintText
-
- ld a, [CurMoveNum]
- push af
- xor a
- ld [CurMoveNum], a
- ld a, $2
- ld [wMoveSelectionMenuType], a
- callba MoveSelectionScreen
- pop bc
-
- ld a, b
- ld [CurMoveNum], a
- jr nz, .loop
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
-
- push hl
- ld a, [hl]
- ld [wd265], a
- call GetMoveName
- call CopyName1
- pop hl
-
- ld a, [wd002]
- cp PP_UP
- jp nz, Not_PP_Up
-
- ld a, [hl]
- cp SKETCH
- jr z, .CantUsePPUpOnSketch
-
- ld bc, $0015
- add hl, bc
- ld a, [hl]
- cp 3 << 6 ; have 3 PP Ups already been used?
- jr c, .do_ppup
-
-.CantUsePPUpOnSketch:
-.pp_is_maxed_out
- ld hl, TextJump_PPIsMaxedOut
- call PrintText
- jr .loop2
-
-.do_ppup
- ld a, [hl]
- add 1 << 6 ; increase PP Up count by 1
- ld [hl], a
- ld a, $1
- ld [wd265], a
- call ApplyPPUp
- call Play_SFX_FULL_HEAL
-
- ld hl, TextJump_PPsIncreased
- call PrintText
-
-FinishPPRestore: ; f64c
- call ClearPalettes
- jp UseDisposableItem
-; f652
-
-BattleRestorePP: ; f652
- ld a, [wBattleMode]
- and a
- jr z, .not_in_battle
- ld a, [CurPartyMon]
- ld b, a
- ld a, [CurBattleMon]
- cp b
- jr nz, .not_in_battle
- ld a, [PlayerSubStatus5]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .not_in_battle
- call .UpdateBattleMonPP
-
-.not_in_battle
- call Play_SFX_FULL_HEAL
- ld hl, UnknownText_0xf739
- call PrintText
- jr FinishPPRestore
-
-.UpdateBattleMonPP:
- ld a, [CurPartyMon]
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld de, BattleMonMoves
- ld b, NUM_MOVES
-.loop
- ld a, [de]
- and a
- jr z, .done
- cp [hl]
- jr nz, .next
- push hl
- push de
- push bc
- rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
- inc de
- endr
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld a, [hl]
- ld [de], a
- pop bc
- pop de
- pop hl
-
-.next
- inc hl
- inc de
- dec b
- jr nz, .loop
-
-.done
- ret
-; f6a7
-
-Not_PP_Up: ; f6a7
- call RestorePP
- jr nz, BattleRestorePP
- jp PPRestoreItem_NoEffect
-; f6af
-
-Elixer_RestorePPofAllMoves: ; f6af
- xor a
- ld hl, wMenuCursorY
- ld [hli], a
- ld [hl], a
- ld b, NUM_MOVES
-.moveLoop
- push bc
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [hl]
- and a
- jr z, .next
-
- call RestorePP
- jr z, .next
- ld hl, wMenuCursorX
- inc [hl]
-
-.next
- ld hl, wMenuCursorY
- inc [hl]
- pop bc
- dec b
- jr nz, .moveLoop
- ld a, [wMenuCursorX]
- and a
- jp nz, BattleRestorePP
-
-PPRestoreItem_NoEffect: ; f6dd
- call WontHaveAnyEffectMessage
-
-PPRestoreItem_Cancel: ; f6e0
- call ClearPalettes
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f6e8
-
-RestorePP: ; f6e8
- xor a ; PARTYMON
- ld [MonType], a
- call GetMaxPPOfMove
- ld hl, PartyMon1PP
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [wd265]
- ld b, a
- ld a, [hl]
- and (1 << 6) - 1
- cp b
- jr nc, .dont_restore
-
- ld a, [wd002]
- cp MAX_ELIXER
- jr z, .restore_all
- cp MAX_ETHER
- jr z, .restore_all
-
- ld c, 5
- cp MYSTERYBERRY
- jr z, .restore_some
-
- ld c, 10
-
-.restore_some
- ld a, [hl]
- and (1 << 6) - 1
- add c
- cp b
- jr nc, .restore_all
- ld b, a
-
-.restore_all
- ld a, [hl]
- and 3 << 6
- or b
- ld [hl], a
- ret
-
-.dont_restore
- xor a
- ret
-; f725
-
-TextJump_RaiseThePPOfWhichMove: ; 0xf725
- ; Raise the PP of which move?
- text_jump Text_RaiseThePPOfWhichMove
- db "@"
-; 0xf72a
-
-TextJump_RestoreThePPOfWhichMove: ; 0xf72a
- ; Restore the PP of which move?
- text_jump Text_RestoreThePPOfWhichMove
- db "@"
-; 0xf72f
-
-TextJump_PPIsMaxedOut: ; 0xf72f
- ; 's PP is maxed out.
- text_jump Text_PPIsMaxedOut
- db "@"
-; 0xf734
-
-TextJump_PPsIncreased: ; 0xf734
- ; 's PP increased.
- text_jump Text_PPsIncreased
- db "@"
-; 0xf739
-
-UnknownText_0xf739: ; 0xf739
- ; PP was restored.
- text_jump UnknownText_0x1c5cf1
- db "@"
-; 0xf73e
-
-
-Squirtbottle: ; f73e
- callba _Squirtbottle
- ret
-; f745
-
-
-CardKey: ; f745
- callba _CardKey
- ret
-; f74c
-
-
-BasementKey: ; f74c
- callba _BasementKey
- ret
-; f753
-
-
-SacredAsh: ; f753
- callba _SacredAsh
- ld a, [wItemEffectSucceeded]
- cp $1
- ret nz
- call UseDisposableItem
- ret
-; f763
-
-
-NormalBox: ; f763
- ld c, DECOFLAG_SILVER_TROPHY_DOLL
- jr OpenBox
-; f767
-
-GorgeousBox: ; f767
- ld c, DECOFLAG_GOLD_TROPHY_DOLL
-OpenBox: ; f769
- callba SetSpecificDecorationFlag
-
- ld hl, .text
- call PrintText
-
- jp UseDisposableItem
-; f778
-
-.text ; 0xf778
- ; There was a trophy inside!
- text_jump UnknownText_0x1c5d03
- db "@"
-; 0xf77d
-
-Brightpowder:
-Item19:
-LuckyPunch:
-MetalPowder:
-Nugget:
-Item2D:
-Item32:
-ExpShare:
-SilverLeaf:
-RedScale:
-Secretpotion:
-SSTicket:
-MysteryEgg:
-ClearBell:
-SilverWing:
-QuickClaw:
-GoldLeaf:
-SoftSand:
-SharpBeak:
-PoisonBarb:
-KingsRock:
-RedApricorn:
-Tinymushroom:
-BigMushroom:
-Silverpowder:
-BluApricorn:
-Item5A:
-AmuletCoin:
-YlwApricorn:
-GrnApricorn:
-CleanseTag:
-MysticWater:
-Twistedspoon:
-WhtApricorn:
-Blackbelt:
-BlkApricorn:
-Item64:
-PnkApricorn:
-Blackglasses:
-Slowpoketail:
-PinkBow:
-Stick:
-SmokeBall:
-Nevermeltice:
-Magnet:
-Pearl:
-BigPearl:
-Everstone:
-SpellTag:
-GsBall:
-MiracleSeed:
-ThickClub:
-FocusBand:
-Item78:
-HardStone:
-LuckyEgg:
-MachinePart:
-EggTicket:
-LostItem:
-Stardust:
-StarPiece:
-Pass:
-Item87:
-Item88:
-Item89:
-Charcoal:
-ScopeLens:
-Item8D:
-Item8E:
-MetalCoat:
-DragonFang:
-Item91:
-Leftovers:
-Item93:
-Item94:
-Item95:
-DragonScale:
-BerserkGene:
-Item99:
-Item9A:
-Item9B:
-FlowerMail:
-ItemA2:
-LightBall:
-PolkadotBow:
-ItemAB:
-UpGrade:
-ItemB0:
-RainbowWing:
-ItemB3:
-TeruSama: ; f77d
- jp IsntTheTimeMessage
-; f780
-
-
-Play_SFX_FULL_HEAL: ; f780
- push de
- ld de, SFX_FULL_HEAL
- call WaitPlaySFX
- pop de
- ret
-; f789
-
-UseItemText: ; f789
- ld hl, UsedItemText
- call PrintText
- call Play_SFX_FULL_HEAL
- call WaitPressAorB_BlinkCursor
-UseDisposableItem: ; f795
- ld hl, NumItems
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-; f7a0
-
-UseBallInTrainerBattle: ; f7a0
- call ReturnToBattle_UseBall
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimIDLo], a
- ld a, d
- ld [FXAnimIDHi], a
- xor a
- ld [wBattleAnimParam], a
- ld [hBattleTurn], a
- ld [wNumHits], a
- predef PlayBattleAnim
- ld hl, BlockedTheBallText
- call PrintText
- ld hl, DontBeAThiefText
- call PrintText
- jr UseDisposableItem
-; f7ca
-
-WontHaveAnyEffect_NotUsedMessage: ; f7ca
- ld hl, WontHaveAnyEffectText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7d6
-
-LooksBitterMessage: ; f7d6
- ld hl, LooksBitterText
- jp PrintText
-; f7dc
-
-Ball_BoxIsFullMessage: ; f7dc
- ld hl, Ball_BoxIsFullText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7e8
-
-CantUseOnEggMessage: ; f7e8
- ld hl, CantUseOnEggText
- jr CantUseItemMessage
-
-IsntTheTimeMessage: ; f7ed
- ld hl, IsntTheTimeText
- jr CantUseItemMessage
-
-WontHaveAnyEffectMessage: ; f7f2
- ld hl, WontHaveAnyEffectText
- jr CantUseItemMessage
-
-BelongsToSomeoneElseMessage: ; f7f7
- ld hl, BelongsToSomeoneElseText
- jr CantUseItemMessage
-
-CyclingIsntAllowedMessage: ; f7fc
- ld hl, CyclingIsntAllowedText
- jr CantUseItemMessage
-
-CantGetOnYourBikeMessage: ; f801
- ld hl, CantGetOnYourBikeText
-
-CantUseItemMessage: ; f804
-; Item couldn't be used.
- xor a
- ld [wItemEffectSucceeded], a
- jp PrintText
-; f80b
-
-LooksBitterText: ; 0xf80b
- ; It looks bitter…
- text_jump UnknownText_0x1c5d3e
- db "@"
-; 0xf810
-
-CantUseOnEggText: ; 0xf810
- ; That can't be used on an EGG.
- text_jump UnknownText_0x1c5d50
- db "@"
-; 0xf815
-
-IsntTheTimeText: ; 0xf815
- ; OAK: ! This isn't the time to use that!
- text_jump UnknownText_0x1c5d6e
- db "@"
-; 0xf81a
-
-BelongsToSomeoneElseText: ; 0xf81a
- ; That belongs to someone else!
- text_jump UnknownText_0x1c5d97
- db "@"
-; 0xf81f
-
-WontHaveAnyEffectText: ; 0xf81f
- ; It won't have any effect.
- text_jump UnknownText_0x1c5db6
- db "@"
-; 0xf824
-
-BlockedTheBallText: ; 0xf824
- ; The trainer blocked the BALL!
- text_jump UnknownText_0x1c5dd0
- db "@"
-; 0xf829
-
-DontBeAThiefText: ; 0xf829
- ; Don't be a thief!
- text_jump UnknownText_0x1c5def
- db "@"
-; 0xf82e
-
-CyclingIsntAllowedText: ; 0xf82e
- ; Cycling isn't allowed here.
- text_jump UnknownText_0x1c5e01
- db "@"
-; 0xf833
-
-CantGetOnYourBikeText: ; 0xf833
- ; Can't get on your @ now.
- text_jump UnknownText_0x1c5e1d
- db "@"
-; 0xf838
-
-Ball_BoxIsFullText: ; 0xf838
- ; The #MON BOX is full. That can't be used now.
- text_jump UnknownText_0x1c5e3a
- db "@"
-; 0xf83d
-
-UsedItemText: ; 0xf83d
- ; used the@ .
- text_jump UnknownText_0x1c5e68
- db "@"
-; 0xf842
-
-GotOnTheItemText: ; 0xf842
- ; got on the@ .
- text_jump UnknownText_0x1c5e7b
- db "@"
-; 0xf847
-
-GotOffTheItemText: ; 0xf847
- ; got off@ the @ .
- text_jump UnknownText_0x1c5e90
- db "@"
-; 0xf84c
-
-
-ApplyPPUp: ; f84c
- ld a, MON_MOVES
- call GetPartyParamLocation
- push hl
- ld de, Buffer1
- predef FillPP
- pop hl
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld de, Buffer1
- ld b, 0
-.loop
- inc b
- ld a, b
- cp NUM_MOVES + 1
- ret z
- ld a, [wd265]
- dec a
- jr nz, .use
- ld a, [wMenuCursorY]
- inc a
- cp b
- jr nz, .skip
-
-.use
- ld a, [hl]
- and 3 << 6
- ld a, [de] ; wasted cycle
- call nz, ComputeMaxPP
-
-.skip
- inc hl
- inc de
- jr .loop
-; f881
-
-
-
-ComputeMaxPP: ; f881
- push bc
- ; Divide the base PP by 5.
- ld a, [de]
- ld [hDividend + 3], a
- xor a
- ld [hDividend], a
- ld [hDividend + 1], a
- ld [hDividend + 2], a
- ld a, 5
- ld [hDivisor], a
- ld b, 4
- call Divide
- ; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
- ld a, [hl]
- ld b, a
- swap a
- and $f
- srl a
- srl a
- ld c, a
- ; If this value is 0, we are done
- and a
- jr z, .NoPPUp
-
-.loop
- ; Normally, a move with 40 PP would have 64 PP with three PP Ups.
- ; Since this would overflow into bit 6, we prevent that from happening
- ; by decreasing the extra amount of PP each PP Up provides, resulting
- ; in a maximum of 61.
- ld a, [hQuotient + 2]
- cp $8
- jr c, .okay
- ld a, $7
-
-.okay
- add b
- ld b, a
- ld a, [wd265]
- dec a
- jr z, .NoPPUp
- dec c
- jr nz, .loop
-
-.NoPPUp:
- ld [hl], b
- pop bc
- ret
-; f8b9
-
-RestoreAllPP: ; f8b9
- ld a, MON_PP
- call GetPartyParamLocation
- push hl
- ld a, MON_MOVES
- call GetPartyParamLocation
- pop de
- xor a ; PARTYMON
- ld [wMenuCursorY], a
- ld [MonType], a
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- and a
- ret z
- push hl
- push de
- push bc
- call GetMaxPPOfMove
- pop bc
- pop de
- ld a, [de]
- and 3 << 6
- ld b, a
- ld a, [wd265]
- add b
- ld [de], a
- inc de
- ld hl, wMenuCursorY
- inc [hl]
- pop hl
- dec c
- jr nz, .loop
- ret
-; f8ec
-
-
-GetMaxPPOfMove: ; f8ec
- ld a, [StringBuffer1 + 0]
- push af
- ld a, [StringBuffer1 + 1]
- push af
-
- ld a, [MonType]
- and a
-
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- jr z, .got_partymon ; PARTYMON
-
- ld hl, OTPartyMon1Moves
- dec a
- jr z, .got_partymon ; OTPARTYMON
-
- ld hl, TempMonMoves
- dec a
- jr z, .got_nonpartymon ; BOXMON
-
- ld hl, TempMonMoves ; Wasted cycles
- dec a
- jr z, .got_nonpartymon ; TEMPMON
-
- ld hl, BattleMonMoves ; WILDMON
-
-.got_nonpartymon ; BOXMON, TEMPMON, WILDMON
- call GetMthMoveOfCurrentMon
- jr .gotdatmove
-
-.got_partymon ; PARTYMON, OTPARTYMON
- call GetMthMoveOfNthPartymon
-
-.gotdatmove
- ld a, [hl]
- dec a
-
- push hl
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- ld b, a
- ld de, StringBuffer1
- ld [de], a
- pop hl
-
- push bc
- ld bc, MON_PP - MON_MOVES
- ld a, [MonType]
- cp WILDMON
- jr nz, .notwild
- ld bc, EnemyMonPP - EnemyMonMoves
-.notwild
- add hl, bc
- ld a, [hl]
- and 3 << 6
- pop bc
-
- or b
- ld hl, StringBuffer1 + 1
- ld [hl], a
- xor a
- ld [wd265], a
- ld a, b ; this gets lost anyway
- call ComputeMaxPP
- ld a, [hl]
- and (1 << 6) - 1
- ld [wd265], a
-
- pop af
- ld [StringBuffer1 + 1], a
- pop af
- ld [StringBuffer1 + 0], a
- ret
-; f963
-
-GetMthMoveOfNthPartymon: ; f963
- ld a, [CurPartyMon]
- call AddNTimes
-
-GetMthMoveOfCurrentMon: ; f969
- ld a, [wMenuCursorY]
- ld c, a
- ld b, 0
- add hl, bc
- ret
-; f971
-
-INCLUDE "items/pokeball_wobble.asm"
diff --git a/items/item_names.asm b/items/item_names.asm
deleted file mode 100644
index 7a31888b6..000000000
--- a/items/item_names.asm
+++ /dev/null
@@ -1,256 +0,0 @@
- db "MASTER BALL@"
- db "ULTRA BALL@"
- db "BRIGHTPOWDER@"
- db "GREAT BALL@"
- db "# BALL@"
- db "TERU-SAMA@"
- db "BICYCLE@"
- db "MOON STONE@"
- db "ANTIDOTE@"
- db "BURN HEAL@"
- db "ICE HEAL@"
- db "AWAKENING@"
- db "PARLYZ HEAL@"
- db "FULL RESTORE@"
- db "MAX POTION@"
- db "HYPER POTION@"
- db "SUPER POTION@"
- db "POTION@"
- db "ESCAPE ROPE@"
- db "REPEL@"
- db "MAX ELIXER@"
- db "FIRE STONE@"
- db "THUNDERSTONE@"
- db "WATER STONE@"
- db "TERU-SAMA@"
- db "HP UP@"
- db "PROTEIN@"
- db "IRON@"
- db "CARBOS@"
- db "LUCKY PUNCH@"
- db "CALCIUM@"
- db "RARE CANDY@"
- db "X ACCURACY@"
- db "LEAF STONE@"
- db "METAL POWDER@"
- db "NUGGET@"
- db "# DOLL@"
- db "FULL HEAL@"
- db "REVIVE@"
- db "MAX REVIVE@"
- db "GUARD SPEC.@"
- db "SUPER REPEL@"
- db "MAX REPEL@"
- db "DIRE HIT@"
- db "TERU-SAMA@"
- db "FRESH WATER@"
- db "SODA POP@"
- db "LEMONADE@"
- db "X ATTACK@"
- db "TERU-SAMA@"
- db "X DEFEND@"
- db "X SPEED@"
- db "X SPECIAL@"
- db "COIN CASE@"
- db "ITEMFINDER@"
- db "TERU-SAMA@"
- db "EXP.SHARE@"
- db "OLD ROD@"
- db "GOOD ROD@"
- db "SILVER LEAF@"
- db "SUPER ROD@"
- db "PP UP@"
- db "ETHER@"
- db "MAX ETHER@"
- db "ELIXER@"
- db "RED SCALE@"
- db "SECRETPOTION@"
- db "S.S.TICKET@"
- db "MYSTERY EGG@"
- db "CLEAR BELL@"
- db "SILVER WING@"
- db "MOOMOO MILK@"
- db "QUICK CLAW@"
- db "PSNCUREBERRY@"
- db "GOLD LEAF@"
- db "SOFT SAND@"
- db "SHARP BEAK@"
- db "PRZCUREBERRY@"
- db "BURNT BERRY@"
- db "ICE BERRY@"
- db "POISON BARB@"
- db "KING'S ROCK@"
- db "BITTER BERRY@"
- db "MINT BERRY@"
- db "RED APRICORN@"
- db "TINYMUSHROOM@"
- db "BIG MUSHROOM@"
- db "SILVERPOWDER@"
- db "BLU APRICORN@"
- db "TERU-SAMA@"
- db "AMULET COIN@"
- db "YLW APRICORN@"
- db "GRN APRICORN@"
- db "CLEANSE TAG@"
- db "MYSTIC WATER@"
- db "TWISTEDSPOON@"
- db "WHT APRICORN@"
- db "BLACKBELT@"
- db "BLK APRICORN@"
- db "TERU-SAMA@"
- db "PNK APRICORN@"
- db "BLACKGLASSES@"
- db "SLOWPOKETAIL@"
- db "PINK BOW@"
- db "STICK@"
- db "SMOKE BALL@"
- db "NEVERMELTICE@"
- db "MAGNET@"
- db "MIRACLEBERRY@"
- db "PEARL@"
- db "BIG PEARL@"
- db "EVERSTONE@"
- db "SPELL TAG@"
- db "RAGECANDYBAR@"
- db "GS BALL@"
- db "BLUE CARD@"
- db "MIRACLE SEED@"
- db "THICK CLUB@"
- db "FOCUS BAND@"
- db "TERU-SAMA@"
- db "ENERGYPOWDER@"
- db "ENERGY ROOT@"
- db "HEAL POWDER@"
- db "REVIVAL HERB@"
- db "HARD STONE@"
- db "LUCKY EGG@"
- db "CARD KEY@"
- db "MACHINE PART@"
- db "EGG TICKET@"
- db "LOST ITEM@"
- db "STARDUST@"
- db "STAR PIECE@"
- db "BASEMENT KEY@"
- db "PASS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "CHARCOAL@"
- db "BERRY JUICE@"
- db "SCOPE LENS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "METAL COAT@"
- db "DRAGON FANG@"
- db "TERU-SAMA@"
- db "LEFTOVERS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "MYSTERYBERRY@"
- db "DRAGON SCALE@"
- db "BERSERK GENE@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "SACRED ASH@"
- db "HEAVY BALL@"
- db "FLOWER MAIL@"
- db "LEVEL BALL@"
- db "LURE BALL@"
- db "FAST BALL@"
- db "TERU-SAMA@"
- db "LIGHT BALL@"
- db "FRIEND BALL@"
- db "MOON BALL@"
- db "LOVE BALL@"
- db "NORMAL BOX@"
- db "GORGEOUS BOX@"
- db "SUN STONE@"
- db "POLKADOT BOW@"
- db "TERU-SAMA@"
- db "UP-GRADE@"
- db "BERRY@"
- db "GOLD BERRY@"
- db "SQUIRTBOTTLE@"
- db "TERU-SAMA@"
- db "PARK BALL@"
- db "RAINBOW WING@"
- db "TERU-SAMA@"
- db "BRICK PIECE@"
- db "SURF MAIL@"
- db "LITEBLUEMAIL@"
- db "PORTRAITMAIL@"
- db "LOVELY MAIL@"
- db "EON MAIL@"
- db "MORPH MAIL@"
- db "BLUESKY MAIL@"
- db "MUSIC MAIL@"
- db "MIRAGE MAIL@"
- db "TERU-SAMA@"
- db "TM01@"
- db "TM02@"
- db "TM03@"
- db "TM04@"
- db "TERU-SAMA@"
- db "TM05@"
- db "TM06@"
- db "TM07@"
- db "TM08@"
- db "TM09@"
- db "TM10@"
- db "TM11@"
- db "TM12@"
- db "TM13@"
- db "TM14@"
- db "TM15@"
- db "TM16@"
- db "TM17@"
- db "TM18@"
- db "TM19@"
- db "TM20@"
- db "TM21@"
- db "TM22@"
- db "TM23@"
- db "TM24@"
- db "TM25@"
- db "TM26@"
- db "TM27@"
- db "TM28@"
- db "TERU-SAMA@"
- db "TM29@"
- db "TM30@"
- db "TM31@"
- db "TM32@"
- db "TM33@"
- db "TM34@"
- db "TM35@"
- db "TM36@"
- db "TM37@"
- db "TM38@"
- db "TM39@"
- db "TM40@"
- db "TM41@"
- db "TM42@"
- db "TM43@"
- db "TM44@"
- db "TM45@"
- db "TM46@"
- db "TM47@"
- db "TM48@"
- db "TM49@"
- db "TM50@"
- db "HM01@"
- db "HM02@"
- db "HM03@"
- db "HM04@"
- db "HM05@"
- db "HM06@"
- db "HM07@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "?@"
diff --git a/items/marts.asm b/items/marts.asm
deleted file mode 100644
index cd17ca36b..000000000
--- a/items/marts.asm
+++ /dev/null
@@ -1,442 +0,0 @@
-Marts: ; 160a9
- dw MartCherrygrove
- dw MartCherrygroveDex
- dw MartViolet
- dw MartAzalea
- dw MartCianwood
- dw MartGoldenrod2F1
- dw MartGoldenrod2F2
- dw MartGoldenrod3F
- dw MartGoldenrod4F
- dw MartGoldenrod5F1
- dw MartGoldenrod5F2
- dw MartGoldenrod5F3
- dw MartGoldenrod5F4
- dw MartOlivine
- dw MartEcruteak
- dw MartMahogany1
- dw MartMahogany2
- dw MartBlackthorn
- dw MartViridian
- dw MartPewter
- dw MartCerulean
- dw MartLavender
- dw MartVermilion
- dw MartCeladon2F1
- dw MartCeladon2F2
- dw MartCeladon3F
- dw MartCeladon4F
- dw MartCeladon5F1
- dw MartCeladon5F2
- dw MartFuchsia
- dw MartSaffron
- dw MartMtMoon
- dw MartIndigoPlateau
- dw MartUnderground
-MartsEnd
-; 160ed
-
-
-MartCherrygrove: ; 160ed
- db 4 ; # items
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160f3
-
-MartCherrygroveDex: ; 160f3
- db 5 ; # items
- db POKE_BALL
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160fa
-
-MartViolet: ; 160fa
- db 10 ; # items
- db POKE_BALL
- db POTION
- db ESCAPE_ROPE
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db X_DEFEND
- db X_ATTACK
- db X_SPEED
- db FLOWER_MAIL
- db $ff
-; 16106
-
-MartAzalea: ; 16106
- db 9 ; # items
- db CHARCOAL
- db POKE_BALL
- db POTION
- db SUPER_POTION
- db ESCAPE_ROPE
- db REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db FLOWER_MAIL
- db $ff
-; 16111
-
-MartCianwood: ; 16111
- db 5 ; # items
- db POTION
- db SUPER_POTION
- db HYPER_POTION
- db FULL_HEAL
- db REVIVE
- db $ff
-; 16118
-
-MartGoldenrod2F1: ; 16118
- db 7 ; # items
- db POTION
- db SUPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db ICE_HEAL
- db $ff
-; 16121
-
-MartGoldenrod2F2: ; 16121
- db 8 ; # items
- db POKE_BALL
- db GREAT_BALL
- db ESCAPE_ROPE
- db REPEL
- db REVIVE
- db FULL_HEAL
- db POKE_DOLL
- db FLOWER_MAIL
- db $ff
-; 1612b
-
-MartGoldenrod3F: ; 1612b
- db 7 ; # items
- db X_SPEED
- db X_SPECIAL
- db X_DEFEND
- db X_ATTACK
- db DIRE_HIT
- db GUARD_SPEC
- db X_ACCURACY
- db $ff
-; 16134
-
-MartGoldenrod4F: ; 16134
- db 5 ; # items
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db HP_UP
- db $ff
-; 1613b
-
-MartGoldenrod5F1: ; 1613b
- db 3 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db $ff
-; 16140
-
-MartGoldenrod5F2: ; 16140
- db 4 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_HEADBUTT
- db $ff
-; 16146
-
-MartGoldenrod5F3: ; 16146
- db 4 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_ROCK_SMASH
- db $ff
-; 1614c
-
-MartGoldenrod5F4: ; 1614c
- db 5 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_HEADBUTT
- db TM_ROCK_SMASH
- db $ff
-; 16153
-
-MartOlivine: ; 16153
- db 9 ; # items
- db GREAT_BALL
- db SUPER_POTION
- db HYPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db ICE_HEAL
- db SUPER_REPEL
- db SURF_MAIL
- db $ff
-; 1615e
-
-MartEcruteak: ; 1615e
- db 10 ; # items
- db POKE_BALL
- db GREAT_BALL
- db POTION
- db SUPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db ICE_HEAL
- db REVIVE
- db $ff
-; 1616a
-
-MartMahogany1: ; 1616a
- db 4 ; # items
- db TINYMUSHROOM
- db SLOWPOKETAIL
- db POKE_BALL
- db POTION
- db $ff
-; 16170
-
-MartMahogany2: ; 16170
- db 9 ; # items
- db RAGECANDYBAR
- db GREAT_BALL
- db SUPER_POTION
- db HYPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db SUPER_REPEL
- db REVIVE
- db FLOWER_MAIL
- db $ff
-; 1617b
-
-MartBlackthorn: ; 1617b
- db 9 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db HYPER_POTION
- db MAX_POTION
- db FULL_HEAL
- db REVIVE
- db MAX_REPEL
- db X_DEFEND
- db X_ATTACK
- db $ff
-; 16186
-
-MartViridian: ; 16186
- db 9 ; # items
- db ULTRA_BALL
- db HYPER_POTION
- db FULL_HEAL
- db REVIVE
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db FLOWER_MAIL
- db $ff
-; 16191
-
-MartPewter: ; 16191
- db 7 ; # items
- db GREAT_BALL
- db SUPER_POTION
- db SUPER_REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db $ff
-; 1619a
-
-MartCerulean: ; 1619a
- db 9 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db SUPER_POTION
- db SUPER_REPEL
- db FULL_HEAL
- db X_DEFEND
- db X_ATTACK
- db DIRE_HIT
- db SURF_MAIL
- db $ff
-; 161a5
-
-MartLavender: ; 161a5
- db 8 ; # items
- db GREAT_BALL
- db POTION
- db SUPER_POTION
- db MAX_REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db $ff
-; 161af
-
-MartVermilion: ; 161af
- db 8 ; # items
- db ULTRA_BALL
- db SUPER_POTION
- db HYPER_POTION
- db REVIVE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db LITEBLUEMAIL
- db $ff
-; 161b9
-
-MartCeladon2F1: ; 161b9
- db 7 ; # items
- db POTION
- db SUPER_POTION
- db HYPER_POTION
- db MAX_POTION
- db REVIVE
- db SUPER_REPEL
- db MAX_REPEL
- db $ff
-; 161c2
-
-MartCeladon2F2: ; 161c2
- db 10 ; # items
- db POKE_BALL
- db GREAT_BALL
- db ULTRA_BALL
- db ESCAPE_ROPE
- db FULL_HEAL
- db ANTIDOTE
- db BURN_HEAL
- db ICE_HEAL
- db AWAKENING
- db PARLYZ_HEAL
- db $ff
-; 161ce
-
-MartCeladon3F: ; 161ce
- db 5 ; # items
- db TM_HIDDEN_POWER
- db TM_SUNNY_DAY
- db TM_PROTECT
- db TM_RAIN_DANCE
- db TM_SANDSTORM
- db $ff
-; 161d5
-
-MartCeladon4F: ; 161d5
- db 3 ; # items
- db POKE_DOLL
- db LOVELY_MAIL
- db SURF_MAIL
- db $ff
-; 161da
-
-MartCeladon5F1: ; 161da
- db 5 ; # items
- db HP_UP
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db $ff
-; 161e1
-
-MartCeladon5F2: ; 161e1
- db 7 ; # items
- db X_ACCURACY
- db GUARD_SPEC
- db DIRE_HIT
- db X_ATTACK
- db X_DEFEND
- db X_SPEED
- db X_SPECIAL
- db $ff
-; 161ea
-
-MartFuchsia: ; 161ea
- db 7 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db SUPER_POTION
- db HYPER_POTION
- db FULL_HEAL
- db MAX_REPEL
- db FLOWER_MAIL
- db $ff
-; 161f3
-
-MartSaffron: ; 161f3
- db 8 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db HYPER_POTION
- db MAX_POTION
- db FULL_HEAL
- db X_ATTACK
- db X_DEFEND
- db FLOWER_MAIL
- db $ff
-; 161fd
-
-MartMtMoon: ; 161fd
- db 6 ; # items
- db POKE_DOLL
- db FRESH_WATER
- db SODA_POP
- db LEMONADE
- db REPEL
- db PORTRAITMAIL
- db $ff
-; 16205
-
-MartIndigoPlateau: ; 16205
- db 7 ; # items
- db ULTRA_BALL
- db MAX_REPEL
- db HYPER_POTION
- db MAX_POTION
- db FULL_RESTORE
- db REVIVE
- db FULL_HEAL
- db $ff
-; 1620e
-
-MartUnderground: ; 1620e
- db 4 ; # items
- db ENERGYPOWDER
- db ENERGY_ROOT
- db HEAL_POWDER
- db REVIVAL_HERB
- db $ff
-; 16214
-
-DefaultMart: ; 16214
- db 2 ; # items
- db POKE_BALL
- db POTION
- db $ff
-; 16218
diff --git a/items/pokeball_wobble.asm b/items/pokeball_wobble.asm
deleted file mode 100755
index 7fb4d3e38..000000000
--- a/items/pokeball_wobble.asm
+++ /dev/null
@@ -1,88 +0,0 @@
-GetPokeBallWobble: ; f971 (3:7971)
-; Returns whether a Poke Ball will wobble in the catch animation.
-; Whether a Pokemon is caught is determined beforehand.
-
- push de
-
- ld a, [rSVBK]
- ld d, a
- push de
-
- ld a, 1 ; BANK(Buffer2)
- ld [rSVBK], a
-
- ld a, [Buffer2]
- inc a
- ld [Buffer2], a
-
-; Wobble up to 3 times.
- cp 3 + 1
- jr z, .finished
-
- ld a, [wWildMon]
- and a
- ld c, 0 ; next
- jr nz, .done
-
- ld hl, .WobbleProbabilities
- ld a, [Buffer1]
- ld b, a
-.loop
- ld a, [hli]
- cp b
- jr nc, .checkwobble
- inc hl
- jr .loop
-
-.checkwobble
- ld b, [hl]
- call Random
- cp b
- ld c, 0 ; next
- jr c, .done
- ld c, 2 ; escaped
- jr .done
-
-.finished
- ld a, [wWildMon]
- and a
- ld c, 1 ; caught
- jr nz, .done
- ld c, 2 ; escaped
-
-.done
- pop de
- ld e, a
- ld a, d
- ld [rSVBK], a
- ld a, e
- pop de
- ret
-
-.WobbleProbabilities: ; f9ba
-; catch rate, chance of wobbling / 255
-; nLeft/255 = (nRight/255) ** 4
- db 1, 63
- db 2, 75
- db 3, 84
- db 4, 90
- db 5, 95
- db 7, 103
- db 10, 113
- db 15, 126
- db 20, 134
- db 30, 149
- db 40, 160
- db 50, 169
- db 60, 177
- db 80, 191
- db 100, 201
- db 120, 211
- db 140, 220
- db 160, 227
- db 180, 234
- db 200, 240
- db 220, 246
- db 240, 251
- db 254, 253
- db 255, 255