shithub: pokecrystal

Download patch

ref: 6ebe45e41fa4d939f5a9f44e05eaf64512b59018
parent: 87514598bedf66be222d85ebbc7565c14d79e0f4
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Thu Jan 25 17:19:24 EST 2018

Move event data to data/events/

diff: cannot open b/data/events//null: file does not exist: 'b/data/events//null'
--- a/constants/item_data_constants.asm
+++ b/constants/item_data_constants.asm
@@ -18,6 +18,7 @@
 
 ; item menu types
 ; UseItem.dw indexes (see engine/pack.asm)
+; UseRegisteredItem.SwitchTo indexes (see engine/select_menu.asm)
 ITEMMENU_NOUSE   EQU 0
 ITEMMENU_CURRENT EQU 4
 ITEMMENU_PARTY   EQU 5
@@ -24,10 +25,13 @@
 ITEMMENU_CLOSE   EQU 6
 
 ; item actions
-CANT_SELECT EQU 1 << 6
-CANT_TOSS   EQU 1 << 7
+CANT_SELECT_F EQU 6
+CANT_TOSS_F   EQU 7
 
+CANT_SELECT EQU 1 << CANT_SELECT_F
+CANT_TOSS   EQU 1 << CANT_TOSS_F
 
+
 ; pack pockets
 	const_def
 	const ITEM_POCKET     ; 0
@@ -34,7 +38,7 @@
 	const BALL_POCKET     ; 1
 	const KEY_ITEM_POCKET ; 2
 	const TM_HM_POCKET    ; 3
-NUM_POCKETS EQU const_value +- 1
+NUM_POCKETS EQU const_value
 
 MAX_ITEMS     EQU 20
 MAX_BALLS     EQU 12
@@ -170,29 +174,3 @@
 	const MART_MT_MOON
 	const MART_INDIGO_PLATEAU
 	const MART_UNDERGROUND
-
-
-; PartyMenuQualityPointers indexes (see data/party_menu_qualities.asm)
-	const_def
-	const PARTYMENUACTION_CHOOSE_POKEMON
-	const PARTYMENUACTION_HEALING_ITEM
-	const PARTYMENUACTION_SWITCH
-	const PARTYMENUACTION_TEACH_TMHM
-	const PARTYMENUACTION_MOVE
-	const PARTYMENUACTION_EVO_STONE
-	const PARTYMENUACTION_GIVE_MON
-	const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
-	const PARTYMENUACTION_GIVE_ITEM
-	const PARTYMENUACTION_MOBILE ; mobile
-; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
-const_value set $f0
-	const PARTYMENUTEXT_HEAL_PSN
-	const PARTYMENUTEXT_HEAL_BRN
-	const PARTYMENUTEXT_HEAL_FRZ
-	const PARTYMENUTEXT_HEAL_SLP
-	const PARTYMENUTEXT_HEAL_PAR
-	const PARTYMENUTEXT_HEAL_HP
-	const PARTYMENUTEXT_HEAL_ALL
-	const PARTYMENUTEXT_REVIVE
-	const PARTYMENUTEXT_LEVEL_UP
-	const PARTYMENUTEXT_HEAL_CONFUSION
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -69,3 +69,29 @@
 ; start/select menu return values
 HMENURETURN_SCRIPT EQU %10000000
 HMENURETURN_ASM    EQU %11111111
+
+
+; PartyMenuQualityPointers indexes (see data/party_menu_qualities.asm)
+	const_def
+	const PARTYMENUACTION_CHOOSE_POKEMON
+	const PARTYMENUACTION_HEALING_ITEM
+	const PARTYMENUACTION_SWITCH
+	const PARTYMENUACTION_TEACH_TMHM
+	const PARTYMENUACTION_MOVE
+	const PARTYMENUACTION_EVO_STONE
+	const PARTYMENUACTION_GIVE_MON
+	const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
+	const PARTYMENUACTION_GIVE_ITEM
+	const PARTYMENUACTION_MOBILE ; mobile
+; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
+const_value set $f0
+	const PARTYMENUTEXT_HEAL_PSN
+	const PARTYMENUTEXT_HEAL_BRN
+	const PARTYMENUTEXT_HEAL_FRZ
+	const PARTYMENUTEXT_HEAL_SLP
+	const PARTYMENUTEXT_HEAL_PAR
+	const PARTYMENUTEXT_HEAL_HP
+	const PARTYMENUTEXT_HEAL_ALL
+	const PARTYMENUTEXT_REVIVE
+	const PARTYMENUTEXT_LEVEL_UP
+	const PARTYMENUTEXT_HEAL_CONFUSION
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -277,6 +277,13 @@
 	const MON_FE     ; fe
 
 ; Unown forms
+; indexes for:
+; - UnownWords (see data/pokemon/unown_words.asm)
+; - UnownPicPointers (see data/pokemon/unown_pic_pointers.asm)
+; - UnownAnimationPointers (see gfx/pokemon/unown_anim_pointers.asm)
+; - UnownAnimationIdlePointers (see gfx/pokemon/unown_idle_pointers.asm)
+; - UnownBitmasksPointers (see gfx/pokemon/unown_bitmask_pointers.asm)
+; - UnownFramesPointers (see gfx/pokemon/unown_frame_pointers.asm)
 const_value set 1
 	const UNOWN_A ;  1
 	const UNOWN_B ;  2
--- a/data/bug_contest_flags.asm
+++ /dev/null
@@ -1,13 +1,0 @@
-BugCatchingContestantEventFlagTable: ; 139fe
-; there are NUM_BUG_CONTESTANTS entries
-	dw EVENT_BUG_CATCHING_CONTESTANT_1A
-	dw EVENT_BUG_CATCHING_CONTESTANT_2A
-	dw EVENT_BUG_CATCHING_CONTESTANT_3A
-	dw EVENT_BUG_CATCHING_CONTESTANT_4A
-	dw EVENT_BUG_CATCHING_CONTESTANT_5A
-	dw EVENT_BUG_CATCHING_CONTESTANT_6A
-	dw EVENT_BUG_CATCHING_CONTESTANT_7A
-	dw EVENT_BUG_CATCHING_CONTESTANT_8A
-	dw EVENT_BUG_CATCHING_CONTESTANT_9A
-	dw EVENT_BUG_CATCHING_CONTESTANT_10A
-; 13a12
--- a/data/bug_contest_winners.asm
+++ /dev/null
@@ -1,81 +1,0 @@
-BugContestantPointers: ; 13783
-; there are NUM_BUG_CONTESTANTS + 1 entries
-	dw BugContestant_BugCatcherDon ; this reverts back to the player
-	dw BugContestant_BugCatcherDon
-	dw BugContestant_BugCatcherEd
-	dw BugContestant_CooltrainerMNick
-	dw BugContestant_PokefanMWilliam
-	dw BugContestant_BugCatcherBenny
-	dw BugContestant_CamperBarry
-	dw BugContestant_PicnickerCindy
-	dw BugContestant_BugCatcherJosh
-	dw BugContestant_YoungsterSamuel
-	dw BugContestant_SchoolboyKipp
-; 13799
-
-; contestant format:
-;   db class, id
-;   dbw 1st-place mon, score
-;   dbw 2nd-place mon, score
-;   dbw 3rd-place mon, score
-
-BugContestant_BugCatcherDon:
-	db BUG_CATCHER, DON
-	dbw KAKUNA,     300
-	dbw METAPOD,    285
-	dbw CATERPIE,   226
-
-BugContestant_BugCatcherEd:
-	db BUG_CATCHER, ED
-	dbw BUTTERFREE, 286
-	dbw BUTTERFREE, 251
-	dbw CATERPIE,   237
-
-BugContestant_CooltrainerMNick:
-	db COOLTRAINERM, NICK
-	dbw SCYTHER,    357
-	dbw BUTTERFREE, 349
-	dbw PINSIR,     368
-
-BugContestant_PokefanMWilliam:
-	db POKEFANM, WILLIAM
-	dbw PINSIR,     332
-	dbw BUTTERFREE, 324
-	dbw VENONAT,    321
-
-BugContestant_BugCatcherBenny:
-	db BUG_CATCHER, BUG_CATCHER_BENNY
-	dbw BUTTERFREE, 318
-	dbw WEEDLE,     295
-	dbw CATERPIE,   285
-
-BugContestant_CamperBarry:
-	db CAMPER, BARRY
-	dbw PINSIR,     366
-	dbw VENONAT,    329
-	dbw KAKUNA,     314
-
-BugContestant_PicnickerCindy:
-	db PICNICKER, CINDY
-	dbw BUTTERFREE, 341
-	dbw METAPOD,    301
-	dbw CATERPIE,   264
-
-BugContestant_BugCatcherJosh:
-	db BUG_CATCHER, JOSH
-	dbw SCYTHER,    326
-	dbw BUTTERFREE, 292
-	dbw METAPOD,    282
-
-BugContestant_YoungsterSamuel:
-	db YOUNGSTER, SAMUEL
-	dbw WEEDLE,     270
-	dbw PINSIR,     282
-	dbw CATERPIE,   251
-
-BugContestant_SchoolboyKipp:
-	db SCHOOLBOY, KIPP
-	dbw VENONAT,    267
-	dbw PARAS,      254
-	dbw KAKUNA,     259
-; 13807
--- a/data/collision_stdscripts.asm
+++ /dev/null
@@ -1,13 +1,0 @@
-; stdscripts associated with tile collisions
-
-TileCollisionStdScripts:
-	; collision type,        stdscript
-	dbw COLL_BOOKSHELF,      magazinebookshelf
-	dbw COLL_PC,             pcscript
-	dbw COLL_RADIO,          radio1
-	dbw COLL_TOWN_MAP,       townmap
-	dbw COLL_MART_SHELF,     merchandiseshelf
-	dbw COLL_TV,             tv
-	dbw COLL_WINDOW,         window
-	dbw COLL_INCENSE_BURNER, incenseburner
-	db   -1 ; end
--- a/data/elevator_floors.asm
+++ /dev/null
@@ -1,35 +1,0 @@
-ElevatorFloorNames:
-; entries correspond to FLOOR_* constants
-	dw .B4F
-	dw .B3F
-	dw .B2F
-	dw .B1F
-	dw ._1F
-	dw ._2F
-	dw ._3F
-	dw ._4F
-	dw ._5F
-	dw ._6F
-	dw ._7F
-	dw ._8F
-	dw ._9F
-	dw ._10F
-	dw ._11F
-	dw .ROOF
-
-.B4F:  db "B4F@"
-.B3F:  db "B3F@"
-.B2F:  db "B2F@"
-.B1F:  db "B1F@"
-._1F:  db "1F@"
-._2F:  db "2F@"
-._3F:  db "3F@"
-._4F:  db "4F@"
-._5F:  db "5F@"
-._6F:  db "6F@"
-._7F:  db "7F@"
-._8F:  db "8F@"
-._9F:  db "9F@"
-._10F: db "10F@"
-._11F: db "11F@"
-.ROOF: db "ROOF@"
--- /dev/null
+++ b/data/events/bug_contest_flags.asm
@@ -1,0 +1,13 @@
+BugCatchingContestantEventFlagTable: ; 139fe
+; there are NUM_BUG_CONTESTANTS entries
+	dw EVENT_BUG_CATCHING_CONTESTANT_1A
+	dw EVENT_BUG_CATCHING_CONTESTANT_2A
+	dw EVENT_BUG_CATCHING_CONTESTANT_3A
+	dw EVENT_BUG_CATCHING_CONTESTANT_4A
+	dw EVENT_BUG_CATCHING_CONTESTANT_5A
+	dw EVENT_BUG_CATCHING_CONTESTANT_6A
+	dw EVENT_BUG_CATCHING_CONTESTANT_7A
+	dw EVENT_BUG_CATCHING_CONTESTANT_8A
+	dw EVENT_BUG_CATCHING_CONTESTANT_9A
+	dw EVENT_BUG_CATCHING_CONTESTANT_10A
+; 13a12
--- /dev/null
+++ b/data/events/bug_contest_winners.asm
@@ -1,0 +1,81 @@
+BugContestantPointers: ; 13783
+; there are NUM_BUG_CONTESTANTS + 1 entries
+	dw BugContestant_BugCatcherDon ; this reverts back to the player
+	dw BugContestant_BugCatcherDon
+	dw BugContestant_BugCatcherEd
+	dw BugContestant_CooltrainerMNick
+	dw BugContestant_PokefanMWilliam
+	dw BugContestant_BugCatcherBenny
+	dw BugContestant_CamperBarry
+	dw BugContestant_PicnickerCindy
+	dw BugContestant_BugCatcherJosh
+	dw BugContestant_YoungsterSamuel
+	dw BugContestant_SchoolboyKipp
+; 13799
+
+; contestant format:
+;   db class, id
+;   dbw 1st-place mon, score
+;   dbw 2nd-place mon, score
+;   dbw 3rd-place mon, score
+
+BugContestant_BugCatcherDon:
+	db BUG_CATCHER, DON
+	dbw KAKUNA,     300
+	dbw METAPOD,    285
+	dbw CATERPIE,   226
+
+BugContestant_BugCatcherEd:
+	db BUG_CATCHER, ED
+	dbw BUTTERFREE, 286
+	dbw BUTTERFREE, 251
+	dbw CATERPIE,   237
+
+BugContestant_CooltrainerMNick:
+	db COOLTRAINERM, NICK
+	dbw SCYTHER,    357
+	dbw BUTTERFREE, 349
+	dbw PINSIR,     368
+
+BugContestant_PokefanMWilliam:
+	db POKEFANM, WILLIAM
+	dbw PINSIR,     332
+	dbw BUTTERFREE, 324
+	dbw VENONAT,    321
+
+BugContestant_BugCatcherBenny:
+	db BUG_CATCHER, BUG_CATCHER_BENNY
+	dbw BUTTERFREE, 318
+	dbw WEEDLE,     295
+	dbw CATERPIE,   285
+
+BugContestant_CamperBarry:
+	db CAMPER, BARRY
+	dbw PINSIR,     366
+	dbw VENONAT,    329
+	dbw KAKUNA,     314
+
+BugContestant_PicnickerCindy:
+	db PICNICKER, CINDY
+	dbw BUTTERFREE, 341
+	dbw METAPOD,    301
+	dbw CATERPIE,   264
+
+BugContestant_BugCatcherJosh:
+	db BUG_CATCHER, JOSH
+	dbw SCYTHER,    326
+	dbw BUTTERFREE, 292
+	dbw METAPOD,    282
+
+BugContestant_YoungsterSamuel:
+	db YOUNGSTER, SAMUEL
+	dbw WEEDLE,     270
+	dbw PINSIR,     282
+	dbw CATERPIE,   251
+
+BugContestant_SchoolboyKipp:
+	db SCHOOLBOY, KIPP
+	dbw VENONAT,    267
+	dbw PARAS,      254
+	dbw KAKUNA,     259
+; 13807
--- /dev/null
+++ b/data/events/collision_stdscripts.asm
@@ -1,0 +1,13 @@
+; stdscripts associated with tile collisions
+
+TileCollisionStdScripts:
+	; collision type,        stdscript
+	dbw COLL_BOOKSHELF,      magazinebookshelf
+	dbw COLL_PC,             pcscript
+	dbw COLL_RADIO,          radio1
+	dbw COLL_TOWN_MAP,       townmap
+	dbw COLL_MART_SHELF,     merchandiseshelf
+	dbw COLL_TV,             tv
+	dbw COLL_WINDOW,         window
+	dbw COLL_INCENSE_BURNER, incenseburner
+	db   -1 ; end
--- /dev/null
+++ b/data/events/elevator_floors.asm
@@ -1,0 +1,35 @@
+ElevatorFloorNames:
+; entries correspond to FLOOR_* constants
+	dw .B4F
+	dw .B3F
+	dw .B2F
+	dw .B1F
+	dw ._1F
+	dw ._2F
+	dw ._3F
+	dw ._4F
+	dw ._5F
+	dw ._6F
+	dw ._7F
+	dw ._8F
+	dw ._9F
+	dw ._10F
+	dw ._11F
+	dw .ROOF
+
+.B4F:  db "B4F@"
+.B3F:  db "B3F@"
+.B2F:  db "B2F@"
+.B1F:  db "B1F@"
+._1F:  db "1F@"
+._2F:  db "2F@"
+._3F:  db "3F@"
+._4F:  db "4F@"
+._5F:  db "5F@"
+._6F:  db "6F@"
+._7F:  db "7F@"
+._8F:  db "8F@"
+._9F:  db "9F@"
+._10F: db "10F@"
+._11F: db "11F@"
+.ROOF: db "ROOF@"
--- /dev/null
+++ b/data/events/field_move_blocks.asm
@@ -1,0 +1,53 @@
+CutTreeBlockPointers: ; c862
+; tileset, block list pointer
+	dbw TILESET_JOHTO,        .johto
+	dbw TILESET_JOHTO_MODERN, .johto_modern
+	dbw TILESET_KANTO,        .kanto
+	dbw TILESET_PARK,         .park
+	dbw TILESET_FOREST,       .forest
+	db -1 ; end
+
+.johto:
+; facing block, replacement block, animation
+	db $03, $02, 1 ; grass
+	db $5b, $3c, 0 ; tree
+	db $5f, $3d, 0 ; tree
+	db $63, $3f, 0 ; tree
+	db $67, $3e, 0 ; tree
+	db -1 ; end
+
+.johto_modern:
+; facing block, replacement block, animation
+	db $03, $02, $01 ; grass
+	db -1 ; end
+
+.kanto:
+; facing block, replacement block, animation
+	db $0b, $0a, 1 ; grass
+	db $32, $6d, 0 ; tree
+	db $33, $6c, 0 ; tree
+	db $34, $6f, 0 ; tree
+	db $35, $4c, 0 ; tree
+	db $60, $6e, 0 ; tree
+	db -1 ; end
+
+.park:
+; facing block, replacement block, animation
+	db $13, $03, 1 ; grass
+	db $03, $04, 1 ; grass
+	db -1 ; end
+
+.forest:
+; facing block, replacement block, animation
+	db $0f, $17, 0
+	db -1 ; end
+
+
+WhirlpoolBlockPointers: ; c8a4
+	dbw TILESET_JOHTO, .johto
+	db -1 ; end
+
+.johto:
+; facing block, replacement block, animation
+	db $07, $36, 0
+	db -1 ; end
--- /dev/null
+++ b/data/events/happiness_chances.asm
@@ -1,0 +1,12 @@
+HappinessData_YoungerHaircutBrother: ; 7459
+	db $4c, 2, HAPPINESS_YOUNGCUT1 ; 30% chance
+	db $80, 3, HAPPINESS_YOUNGCUT2 ; 20% chance
+	db $ff, 4, HAPPINESS_YOUNGCUT3 ; 50% chance
+
+HappinessData_OlderHaircutBrother: ; 7462
+	db $9a, 2, HAPPINESS_OLDERCUT1 ; 60% chance
+	db $4c, 3, HAPPINESS_OLDERCUT2 ; 10% chance
+	db $ff, 4, HAPPINESS_OLDERCUT3 ; 30% chance
+
+HappinessData_DaisysGrooming: ; 746b
+	db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
--- /dev/null
+++ b/data/events/happiness_changes.asm
@@ -1,0 +1,22 @@
+HappinessChanges:
+; entries correspond to HAPPINESS_* constants
+; change if happiness < 100, change if happiness < 200, change otherwise
+	db  +5,  +3,  +2 ; Gained a level
+	db  +5,  +3,  +2 ; Vitamin
+	db  +1,  +1,  +0 ; X Item
+	db  +3,  +2,  +1 ; Battled a Gym Leader
+	db  +1,  +1,  +0 ; Learned a move
+	db  -1,  -1,  -1 ; Lost to an enemy
+	db  -5,  -5, -10 ; Fainted due to poison
+	db  -5,  -5, -10 ; Lost to a much stronger enemy
+	db  +1,  +1,  +1 ; Haircut (Y1)
+	db  +3,  +3,  +1 ; Haircut (Y2)
+	db  +5,  +5,  +2 ; Haircut (Y3)
+	db  +1,  +1,  +1 ; Haircut (O1)
+	db  +3,  +3,  +1 ; Haircut (O2)
+	db +10, +10,  +4 ; Haircut (O3)
+	db  -5,  -5, -10 ; Used Heal Powder or Energypowder (bitter)
+	db -10, -10, -15 ; Used Energy Root (bitter)
+	db -15, -15, -20 ; Used Revival Herb (bitter)
+	db  +3,  +3,  +1 ; Grooming
+	db +10,  +6,  +4 ; Gained a level in the place where it was caught
--- /dev/null
+++ b/data/events/magikarp_lengths.asm
@@ -1,0 +1,21 @@
+MagikarpLengths: ; fbca8
+; [wMagikarpLength] = z * 100 + (bc - x) / y
+; First argument is the bc threshold as well as x.
+; Second argument is y.
+; In reality, due to the bug at .BCLessThanDE,
+; the threshold is determined by only register b.
+	dwb   110, 1 ; not used unless the bug is fixed
+	dwb   310, 2
+	dwb   710, 4
+	dwb  2710, 20
+	dwb  7710, 50
+	dwb 17710, 100
+	dwb 32710, 150
+	dwb 47710, 150
+	dwb 57710, 100
+	dwb 62710, 50
+	dwb 64710, 20
+	dwb 65210, 5
+	dwb 65410, 2
+	dwb 65510, 1 ; not used
+; fbcd2
--- /dev/null
+++ b/data/events/npc_trades.asm
@@ -1,0 +1,18 @@
+npctrade: MACRO
+; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
+	db \1, \2, \3, \4, \5, \6, \7
+	shift
+	dw \7
+	db \8, \9, 0
+ENDM
+
+NPCTrades: ; fce58
+; entries correspond to NPCTRADE_* constants
+	npctrade TRADE_DIALOG_COLLECTOR, ABRA,       MACHOP,     "MUSCLE@@@@@", $37, $66, GOLD_BERRY,   37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER
+	npctrade TRADE_DIALOG_COLLECTOR, BELLSPROUT, ONIX,       "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER
+	npctrade TRADE_DIALOG_HAPPY,     KRABBY,     VOLTORB,    "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER
+	npctrade TRADE_DIALOG_GIRL,      DRAGONAIR,  DODRIO,     "DORIS@@@@@@", $77, $66, SMOKE_BALL,   00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY
+	npctrade TRADE_DIALOG_NEWBIE,    HAUNTER,    XATU,       "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER
+	npctrade TRADE_DIALOG_GIRL,      CHANSEY,    AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY,   26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER
+	npctrade TRADE_DIALOG_COLLECTOR, DUGTRIO,    MAGNETON,   "MAGGIE@@@@@", $96, $66, METAL_COAT,   50082, "FOREST@@@@@", TRADE_EITHER_GENDER
+; fcf38
--- /dev/null
+++ b/data/events/odd_eggs.asm
@@ -1,0 +1,398 @@
+prob: MACRO
+prob_total = prob_total + (\1)
+	dw prob_total * $ffff / 100
+ENDM
+
+OddEggProbabilities:
+prob_total = 0
+; Pichu
+	prob 8
+	prob 1
+; Cleffa
+	prob 16
+	prob 3
+; Igglybuff
+	prob 16
+	prob 3
+; Smoochum
+	prob 14
+	prob 2
+; Magby
+	prob 10
+	prob 2
+; Elekid
+	prob 12
+	prob 2
+; Tyrogue
+	prob 10
+	prob 1
+; 1fb56e
+
+
+OddEggs: ; 1fb56e
+
+OddEgg1:
+	db PICHU
+	db NO_ITEM
+	db THUNDERSHOCK, CHARM, DIZZY_PUNCH, 0
+	dw 02048 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 30, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 17 ; Max HP
+	bigdw 9 ; Atk
+	bigdw 6 ; Def
+	bigdw 11 ; Spd
+	bigdw 8 ; SAtk
+	bigdw 8 ; SDef
+	db "EGG@@@@@@@@"
+
+OddEgg2:
+	db PICHU
+	db NO_ITEM
+	db THUNDERSHOCK, CHARM, DIZZY_PUNCH, 0
+	dw 00256 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 30, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 17 ; Max HP
+	bigdw 9 ; Atk
+	bigdw 7 ; Def
+	bigdw 12 ; Spd
+	bigdw 9 ; SAtk
+	bigdw 9 ; SDef
+	db "EGG@@@@@@@@"
+
+	db CLEFFA
+	db NO_ITEM
+	db POUND, CHARM, DIZZY_PUNCH, 0
+	dw 04096 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 35, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 20 ; Max HP
+	bigdw 7 ; Atk
+	bigdw 7 ; Def
+	bigdw 6 ; Spd
+	bigdw 9 ; SAtk
+	bigdw 10 ; SDef
+	db "EGG@@@@@@@@"
+
+	db CLEFFA
+	db NO_ITEM
+	db POUND, CHARM, DIZZY_PUNCH, 0
+	dw 00768 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 35, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 20 ; Max HP
+	bigdw 7 ; Atk
+	bigdw 8 ; Def
+	bigdw 7 ; Spd
+	bigdw 10 ; SAtk
+	bigdw 11 ; SDef
+	db "EGG@@@@@@@@"
+
+	db IGGLYBUFF
+	db NO_ITEM
+	db SING, CHARM, DIZZY_PUNCH, 0
+	dw 04096 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 15, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 24 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 6 ; Def
+	bigdw 6 ; Spd
+	bigdw 9 ; SAtk
+	bigdw 7 ; SDef
+	db "EGG@@@@@@@@"
+
+	db IGGLYBUFF
+	db NO_ITEM
+	db SING, CHARM, DIZZY_PUNCH, 0
+	dw 00768 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 15, 20, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 24 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 7 ; Def
+	bigdw 7 ; Spd
+	bigdw 10 ; SAtk
+	bigdw 8 ; SDef
+	db "EGG@@@@@@@@"
+
+	db SMOOCHUM
+	db NO_ITEM
+	db POUND, LICK, DIZZY_PUNCH, 0
+	dw 03584 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 35, 30, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 6 ; Def
+	bigdw 11 ; Spd
+	bigdw 13 ; SAtk
+	bigdw 11 ; SDef
+	db "EGG@@@@@@@@"
+
+	db SMOOCHUM
+	db NO_ITEM
+	db POUND, LICK, DIZZY_PUNCH, 0
+	dw 00512 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 35, 30, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 7 ; Def
+	bigdw 12 ; Spd
+	bigdw 14 ; SAtk
+	bigdw 12 ; SDef
+	db "EGG@@@@@@@@"
+
+	db MAGBY
+	db NO_ITEM
+	db EMBER, DIZZY_PUNCH, 0, 0
+	dw 02560 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 25, 10, 0, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 12 ; Atk
+	bigdw 8 ; Def
+	bigdw 13 ; Spd
+	bigdw 12 ; SAtk
+	bigdw 10 ; SDef
+	db "EGG@@@@@@@@"
+
+	db MAGBY
+	db NO_ITEM
+	db EMBER, DIZZY_PUNCH, 0, 0
+	dw 00512 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 25, 10, 0, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 12 ; Atk
+	bigdw 9 ; Def
+	bigdw 14 ; Spd
+	bigdw 13 ; SAtk
+	bigdw 11 ; SDef
+	db "EGG@@@@@@@@"
+
+	db ELEKID
+	db NO_ITEM
+	db QUICK_ATTACK, LEER, DIZZY_PUNCH, 0
+	dw 03072 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 30, 30, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 11 ; Atk
+	bigdw 8 ; Def
+	bigdw 14 ; Spd
+	bigdw 11 ; SAtk
+	bigdw 10 ; SDef
+	db "EGG@@@@@@@@"
+
+	db ELEKID
+	db NO_ITEM
+	db QUICK_ATTACK, LEER, DIZZY_PUNCH, 0
+	dw 00512 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 30, 30, 10, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 19 ; Max HP
+	bigdw 11 ; Atk
+	bigdw 9 ; Def
+	bigdw 15 ; Spd
+	bigdw 12 ; SAtk
+	bigdw 11 ; SDef
+	db "EGG@@@@@@@@"
+
+	db TYROGUE
+	db NO_ITEM
+	db TACKLE, DIZZY_PUNCH, 0, 0
+	dw 02560 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $0, $0 ; DVs
+	db 35, 10, 0, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 18 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 8 ; Def
+	bigdw 8 ; Spd
+	bigdw 8 ; SAtk
+	bigdw 8 ; SDef
+	db "EGG@@@@@@@@"
+
+	db TYROGUE
+	db NO_ITEM
+	db TACKLE, DIZZY_PUNCH, 0, 0
+	dw 00256 ; OT ID
+	dt 125 ; Exp
+	; Stat exp
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	bigdw 0
+	db $2a, $aa ; DVs
+	db 35, 10, 0, 0 ; PP
+	db 20 ; Happiness
+	db 0, 0, 0 ; Pokerus, Caught data
+	db 5 ; Level
+	db 0, 0 ; Status
+	bigdw 0 ; HP
+	bigdw 18 ; Max HP
+	bigdw 8 ; Atk
+	bigdw 9 ; Def
+	bigdw 9 ; Spd
+	bigdw 9 ; SAtk
+	bigdw 9 ; SDef
+	db "EGG@@@@@@@@"
--- /dev/null
+++ b/data/events/pokedex_ratings.asm
@@ -1,0 +1,24 @@
+OakRatings: ; 0x2667f
+; if you caught at most this many, play this sound, load this text
+; (text is defined in engine/events/prof_oaks_pc.asm)
+	dbww   9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
+	dbww  19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
+	dbww  34, SFX_DEX_FANFARE_20_49,        OakRating03
+	dbww  49, SFX_DEX_FANFARE_20_49,        OakRating04
+	dbww  64, SFX_DEX_FANFARE_50_79,        OakRating05
+	dbww  79, SFX_DEX_FANFARE_50_79,        OakRating06
+	dbww  94, SFX_DEX_FANFARE_80_109,       OakRating07
+	dbww 109, SFX_DEX_FANFARE_80_109,       OakRating08
+	dbww 124, SFX_CAUGHT_MON,               OakRating09
+	dbww 139, SFX_CAUGHT_MON,               OakRating10
+	dbww 154, SFX_DEX_FANFARE_140_169,      OakRating11
+	dbww 169, SFX_DEX_FANFARE_140_169,      OakRating12
+	dbww 184, SFX_DEX_FANFARE_170_199,      OakRating13
+	dbww 199, SFX_DEX_FANFARE_170_199,      OakRating14
+	dbww 214, SFX_DEX_FANFARE_200_229,      OakRating15
+	dbww 229, SFX_DEX_FANFARE_200_229,      OakRating16
+	dbww 239, SFX_DEX_FANFARE_230_PLUS,     OakRating17
+	dbww 248, SFX_DEX_FANFARE_230_PLUS,     OakRating18
+	dbww 255, SFX_DEX_FANFARE_230_PLUS,     OakRating19
+ ; 0x266de
+ 
\ No newline at end of file
--- /dev/null
+++ b/data/events/unown_walls.asm
@@ -1,0 +1,54 @@
+unownwall: MACRO
+rept _NARG
+if \1 == "-"
+x = $64
+else
+if \1 >= "Y"
+x = 2 * (\1 - "Y") + $60
+else
+if \1 >= "Q"
+x = 2 * (\1 - "Q") + $40
+else
+if \1 >= "I"
+x = 2 * (\1 - "I") + $20
+else
+x = 2 * (\1 - "A")
+endc
+endc
+endc
+endc
+	db x
+shift
+endr
+	db -1 ; end
+ENDM
+
+UnownWalls: ; 8aebc
+; UNOWNWORDS_ESCAPE
+	; db      $08, $44, $04, $00, $2e, $08, $ff
+	unownwall "E", "S", "C", "A", "P", "E"
+; UNOWNWORDS_LIGHT
+	; db      $26, $20, $0c, $0e, $46, $ff
+	unownwall "L", "I", "G", "H", "T"
+; UNOWNWORDS_WATER
+	; db      $4c, $00, $46, $08, $42, $ff
+	unownwall "W", "A", "T", "E", "R"
+; UNOWNWORDS_HO_OH
+	; db      $0e, $2c, $64, $2c, $0e, $ff
+	unownwall "H", "O", "-", "O", "H"
+; 8aed5
+
+MenuHeaders_UnownWalls: ; 0x8aed5
+; UNOWNWORDS_ESCAPE
+	db MENU_BACKUP_TILES ; flags
+	menu_coords 3, 4, 16, 9
+; UNOWNWORDS_LIGHT
+	db MENU_BACKUP_TILES ; flags
+	menu_coords 4, 4, 15, 9
+; UNOWNWORDS_WATER
+	db MENU_BACKUP_TILES ; flags
+	menu_coords 4, 4, 15, 9
+; UNOWNWORDS_HO_OH
+	db MENU_BACKUP_TILES ; flags
+	menu_coords 4, 4, 15, 9
+; 8aee9
--- a/data/field_move_blocks.asm
+++ /dev/null
@@ -1,53 +1,0 @@
-CutTreeBlockPointers: ; c862
-; tileset, block list pointer
-	dbw TILESET_JOHTO,        .johto
-	dbw TILESET_JOHTO_MODERN, .johto_modern
-	dbw TILESET_KANTO,        .kanto
-	dbw TILESET_PARK,         .park
-	dbw TILESET_FOREST,       .forest
-	db -1 ; end
-
-.johto:
-; facing block, replacement block, animation
-	db $03, $02, 1 ; grass
-	db $5b, $3c, 0 ; tree
-	db $5f, $3d, 0 ; tree
-	db $63, $3f, 0 ; tree
-	db $67, $3e, 0 ; tree
-	db -1 ; end
-
-.johto_modern:
-; facing block, replacement block, animation
-	db $03, $02, $01 ; grass
-	db -1 ; end
-
-.kanto:
-; facing block, replacement block, animation
-	db $0b, $0a, 1 ; grass
-	db $32, $6d, 0 ; tree
-	db $33, $6c, 0 ; tree
-	db $34, $6f, 0 ; tree
-	db $35, $4c, 0 ; tree
-	db $60, $6e, 0 ; tree
-	db -1 ; end
-
-.park:
-; facing block, replacement block, animation
-	db $13, $03, 1 ; grass
-	db $03, $04, 1 ; grass
-	db -1 ; end
-
-.forest:
-; facing block, replacement block, animation
-	db $0f, $17, 0
-	db -1 ; end
-
-
-WhirlpoolBlockPointers: ; c8a4
-	dbw TILESET_JOHTO, .johto
-	db -1 ; end
-
-.johto:
-; facing block, replacement block, animation
-	db $07, $36, 0
-	db -1 ; end
--- a/data/happiness_changes.asm
+++ /dev/null
@@ -1,22 +1,0 @@
-HappinessChanges:
-; entries correspond to HAPPINESS_* constants
-; change if happiness < 100, change if happiness < 200, change otherwise
-	db  +5,  +3,  +2 ; Gained a level
-	db  +5,  +3,  +2 ; Vitamin
-	db  +1,  +1,  +0 ; X Item
-	db  +3,  +2,  +1 ; Battled a Gym Leader
-	db  +1,  +1,  +0 ; Learned a move
-	db  -1,  -1,  -1 ; Lost to an enemy
-	db  -5,  -5, -10 ; Fainted due to poison
-	db  -5,  -5, -10 ; Lost to a much stronger enemy
-	db  +1,  +1,  +1 ; Haircut (Y1)
-	db  +3,  +3,  +1 ; Haircut (Y2)
-	db  +5,  +5,  +2 ; Haircut (Y3)
-	db  +1,  +1,  +1 ; Haircut (O1)
-	db  +3,  +3,  +1 ; Haircut (O2)
-	db +10, +10,  +4 ; Haircut (O3)
-	db  -5,  -5, -10 ; Used Heal Powder or Energypowder (bitter)
-	db -10, -10, -15 ; Used Energy Root (bitter)
-	db -15, -15, -20 ; Used Revival Herb (bitter)
-	db  +3,  +3,  +1 ; Grooming
-	db +10,  +6,  +4 ; Gained a level in the place where it was caught
--- /dev/null
+++ b/data/items/pocket_names.asm
@@ -1,0 +1,11 @@
+ItemPocketNames:
+; entries correspond to item type constants
+	dw .Item
+	dw .Key
+	dw .Ball
+	dw .TM
+
+.Item: db "ITEM POCKET@"
+.Key:  db "KEY POCKET@"
+.Ball: db "BALL POCKET@"
+.TM:   db "TM POCKET@"
--- a/data/npc_trades.asm
+++ /dev/null
@@ -1,18 +1,0 @@
-npctrade: MACRO
-; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
-	db \1, \2, \3, \4, \5, \6, \7
-	shift
-	dw \7
-	db \8, \9, 0
-ENDM
-
-NPCTrades: ; fce58
-; entries correspond to NPCTRADE_* constants
-	npctrade TRADE_DIALOG_COLLECTOR, ABRA,       MACHOP,     "MUSCLE@@@@@", $37, $66, GOLD_BERRY,   37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER
-	npctrade TRADE_DIALOG_COLLECTOR, BELLSPROUT, ONIX,       "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER
-	npctrade TRADE_DIALOG_HAPPY,     KRABBY,     VOLTORB,    "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER
-	npctrade TRADE_DIALOG_GIRL,      DRAGONAIR,  DODRIO,     "DORIS@@@@@@", $77, $66, SMOKE_BALL,   00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY
-	npctrade TRADE_DIALOG_NEWBIE,    HAUNTER,    XATU,       "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER
-	npctrade TRADE_DIALOG_GIRL,      CHANSEY,    AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY,   26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER
-	npctrade TRADE_DIALOG_COLLECTOR, DUGTRIO,    MAGNETON,   "MAGGIE@@@@@", $96, $66, METAL_COAT,   50082, "FOREST@@@@@", TRADE_EITHER_GENDER
-; fcf38
--- a/data/odd_eggs.asm
+++ /dev/null
@@ -1,398 +1,0 @@
-prob: MACRO
-prob_total = prob_total + (\1)
-	dw prob_total * $ffff / 100
-ENDM
-
-OddEggProbabilities:
-prob_total = 0
-; Pichu
-	prob 8
-	prob 1
-; Cleffa
-	prob 16
-	prob 3
-; Igglybuff
-	prob 16
-	prob 3
-; Smoochum
-	prob 14
-	prob 2
-; Magby
-	prob 10
-	prob 2
-; Elekid
-	prob 12
-	prob 2
-; Tyrogue
-	prob 10
-	prob 1
-; 1fb56e
-
-
-OddEggs: ; 1fb56e
-
-OddEgg1:
-	db PICHU
-	db NO_ITEM
-	db THUNDERSHOCK, CHARM, DIZZY_PUNCH, 0
-	dw 02048 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 30, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 17 ; Max HP
-	bigdw 9 ; Atk
-	bigdw 6 ; Def
-	bigdw 11 ; Spd
-	bigdw 8 ; SAtk
-	bigdw 8 ; SDef
-	db "EGG@@@@@@@@"
-
-OddEgg2:
-	db PICHU
-	db NO_ITEM
-	db THUNDERSHOCK, CHARM, DIZZY_PUNCH, 0
-	dw 00256 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 30, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 17 ; Max HP
-	bigdw 9 ; Atk
-	bigdw 7 ; Def
-	bigdw 12 ; Spd
-	bigdw 9 ; SAtk
-	bigdw 9 ; SDef
-	db "EGG@@@@@@@@"
-
-	db CLEFFA
-	db NO_ITEM
-	db POUND, CHARM, DIZZY_PUNCH, 0
-	dw 04096 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 35, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 20 ; Max HP
-	bigdw 7 ; Atk
-	bigdw 7 ; Def
-	bigdw 6 ; Spd
-	bigdw 9 ; SAtk
-	bigdw 10 ; SDef
-	db "EGG@@@@@@@@"
-
-	db CLEFFA
-	db NO_ITEM
-	db POUND, CHARM, DIZZY_PUNCH, 0
-	dw 00768 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 35, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 20 ; Max HP
-	bigdw 7 ; Atk
-	bigdw 8 ; Def
-	bigdw 7 ; Spd
-	bigdw 10 ; SAtk
-	bigdw 11 ; SDef
-	db "EGG@@@@@@@@"
-
-	db IGGLYBUFF
-	db NO_ITEM
-	db SING, CHARM, DIZZY_PUNCH, 0
-	dw 04096 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 15, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 24 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 6 ; Def
-	bigdw 6 ; Spd
-	bigdw 9 ; SAtk
-	bigdw 7 ; SDef
-	db "EGG@@@@@@@@"
-
-	db IGGLYBUFF
-	db NO_ITEM
-	db SING, CHARM, DIZZY_PUNCH, 0
-	dw 00768 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 15, 20, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 24 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 7 ; Def
-	bigdw 7 ; Spd
-	bigdw 10 ; SAtk
-	bigdw 8 ; SDef
-	db "EGG@@@@@@@@"
-
-	db SMOOCHUM
-	db NO_ITEM
-	db POUND, LICK, DIZZY_PUNCH, 0
-	dw 03584 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 35, 30, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 6 ; Def
-	bigdw 11 ; Spd
-	bigdw 13 ; SAtk
-	bigdw 11 ; SDef
-	db "EGG@@@@@@@@"
-
-	db SMOOCHUM
-	db NO_ITEM
-	db POUND, LICK, DIZZY_PUNCH, 0
-	dw 00512 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 35, 30, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 7 ; Def
-	bigdw 12 ; Spd
-	bigdw 14 ; SAtk
-	bigdw 12 ; SDef
-	db "EGG@@@@@@@@"
-
-	db MAGBY
-	db NO_ITEM
-	db EMBER, DIZZY_PUNCH, 0, 0
-	dw 02560 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 25, 10, 0, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 12 ; Atk
-	bigdw 8 ; Def
-	bigdw 13 ; Spd
-	bigdw 12 ; SAtk
-	bigdw 10 ; SDef
-	db "EGG@@@@@@@@"
-
-	db MAGBY
-	db NO_ITEM
-	db EMBER, DIZZY_PUNCH, 0, 0
-	dw 00512 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 25, 10, 0, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 12 ; Atk
-	bigdw 9 ; Def
-	bigdw 14 ; Spd
-	bigdw 13 ; SAtk
-	bigdw 11 ; SDef
-	db "EGG@@@@@@@@"
-
-	db ELEKID
-	db NO_ITEM
-	db QUICK_ATTACK, LEER, DIZZY_PUNCH, 0
-	dw 03072 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 30, 30, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 11 ; Atk
-	bigdw 8 ; Def
-	bigdw 14 ; Spd
-	bigdw 11 ; SAtk
-	bigdw 10 ; SDef
-	db "EGG@@@@@@@@"
-
-	db ELEKID
-	db NO_ITEM
-	db QUICK_ATTACK, LEER, DIZZY_PUNCH, 0
-	dw 00512 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 30, 30, 10, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 19 ; Max HP
-	bigdw 11 ; Atk
-	bigdw 9 ; Def
-	bigdw 15 ; Spd
-	bigdw 12 ; SAtk
-	bigdw 11 ; SDef
-	db "EGG@@@@@@@@"
-
-	db TYROGUE
-	db NO_ITEM
-	db TACKLE, DIZZY_PUNCH, 0, 0
-	dw 02560 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $0, $0 ; DVs
-	db 35, 10, 0, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 18 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 8 ; Def
-	bigdw 8 ; Spd
-	bigdw 8 ; SAtk
-	bigdw 8 ; SDef
-	db "EGG@@@@@@@@"
-
-	db TYROGUE
-	db NO_ITEM
-	db TACKLE, DIZZY_PUNCH, 0, 0
-	dw 00256 ; OT ID
-	dt 125 ; Exp
-	; Stat exp
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	bigdw 0
-	db $2a, $aa ; DVs
-	db 35, 10, 0, 0 ; PP
-	db 20 ; Happiness
-	db 0, 0, 0 ; Pokerus, Caught data
-	db 5 ; Level
-	db 0, 0 ; Status
-	bigdw 0 ; HP
-	bigdw 18 ; Max HP
-	bigdw 8 ; Atk
-	bigdw 9 ; Def
-	bigdw 9 ; Spd
-	bigdw 9 ; SAtk
-	bigdw 9 ; SDef
-	db "EGG@@@@@@@@"
--- /dev/null
+++ b/data/phone/non_trainer_names.asm
@@ -1,0 +1,16 @@
+NonTrainerCallerNames: ; 903d6
+; entries correspond to PHONECONTACT_* constants
+	dw .none
+	dw .mom
+	dw .bikeshop
+	dw .bill
+	dw .elm
+	dw .buena
+
+.none:     db "----------@"
+.mom:      db "MOM:@"
+.bill:     db "BILL:@"
+.elm:      db "PROF.ELM:@"
+.bikeshop: db "BIKE SHOP:@"
+.buena:    db "BUENA:<LNBRK>   DISC JOCKEY@"
+; 90423
--- a/data/phone/special_calls.asm
+++ b/data/phone/special_calls.asm
@@ -7,12 +7,12 @@
 
 SpecialPhoneCallList: ; 90627
 ; entries correspond to SPECIALCALL_* constants
-	specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2
-	specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2
-	specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2
-	specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2
-	specialcall SpecialCallWhereverYouAre,  PHONE_ELM, ElmPhoneScript2
-	specialcall SpecialCallWhereverYouAre,  PHONE_OAK, BikeShopPhoneScript
-	specialcall SpecialCallWhereverYouAre,  PHONE_MOM, MomPhoneLectureScript
-	specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2
+	specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM,      ElmPhoneScript2
+	specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM,      ElmPhoneScript2
+	specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM,      ElmPhoneScript2
+	specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM,      ElmPhoneScript2
+	specialcall SpecialCallWhereverYouAre,  PHONECONTACT_ELM,      ElmPhoneScript2
+	specialcall SpecialCallWhereverYouAre,  PHONECONTACT_BIKESHOP, BikeShopPhoneScript
+	specialcall SpecialCallWhereverYouAre,  PHONECONTACT_MOM,      MomPhoneLectureScript
+	specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM,      ElmPhoneScript2
 ; 90657
--- /dev/null
+++ b/data/pokemon/unown_words.asm
@@ -1,0 +1,67 @@
+unownword: MACRO
+x = 1
+	rept STRLEN(\1)
+	db STRSUB(\1, x, 1) - $40
+x = x + 1
+	endr
+	db -1
+ENDM
+
+UnownWords: ; fba5a
+; entries correspond to UNOWN_* form constants
+	dw UnownWordA
+	dw UnownWordA
+	dw UnownWordB
+	dw UnownWordC
+	dw UnownWordD
+	dw UnownWordE
+	dw UnownWordF
+	dw UnownWordG
+	dw UnownWordH
+	dw UnownWordI
+	dw UnownWordJ
+	dw UnownWordK
+	dw UnownWordL
+	dw UnownWordM
+	dw UnownWordN
+	dw UnownWordO
+	dw UnownWordP
+	dw UnownWordQ
+	dw UnownWordR
+	dw UnownWordS
+	dw UnownWordT
+	dw UnownWordU
+	dw UnownWordV
+	dw UnownWordW
+	dw UnownWordX
+	dw UnownWordY
+	dw UnownWordZ
+; fba90
+
+UnownWordA: unownword "ANGRY"
+UnownWordB: unownword "BEAR"
+UnownWordC: unownword "CHASE"
+UnownWordD: unownword "DIRECT"
+UnownWordE: unownword "ENGAGE"
+UnownWordF: unownword "FIND"
+UnownWordG: unownword "GIVE"
+UnownWordH: unownword "HELP"
+UnownWordI: unownword "INCREASE"
+UnownWordJ: unownword "JOIN"
+UnownWordK: unownword "KEEP"
+UnownWordL: unownword "LAUGH"
+UnownWordM: unownword "MAKE"
+UnownWordN: unownword "NUZZLE"
+UnownWordO: unownword "OBSERVE"
+UnownWordP: unownword "PERFORM"
+UnownWordQ: unownword "QUICKEN"
+UnownWordR: unownword "REASSURE"
+UnownWordS: unownword "SEARCH"
+UnownWordT: unownword "TELL"
+UnownWordU: unownword "UNDO"
+UnownWordV: unownword "VANISH"
+UnownWordW: unownword "WANT"
+UnownWordX: unownword "XXXXX"
+UnownWordY: unownword "YIELD"
+UnownWordZ: unownword "ZOOM"
+; fbb32
--- /dev/null
+++ b/data/sprites/player_sprites.asm
@@ -1,0 +1,13 @@
+ChrisStateSprites:
+	db PLAYER_NORMAL,    SPRITE_CHRIS
+	db PLAYER_BIKE,      SPRITE_CHRIS_BIKE
+	db PLAYER_SURF,      SPRITE_SURF
+	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+	db -1 ; end
+
+KrisStateSprites:
+	db PLAYER_NORMAL,    SPRITE_KRIS
+	db PLAYER_BIKE,      SPRITE_KRIS_BIKE
+	db PLAYER_SURF,      SPRITE_SURF
+	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+	db -1 ; end
--- a/data/unown_walls.asm
+++ /dev/null
@@ -1,54 +1,0 @@
-unownwall: MACRO
-rept _NARG
-if \1 == "-"
-x = $64
-else
-if \1 >= "Y"
-x = 2 * (\1 - "Y") + $60
-else
-if \1 >= "Q"
-x = 2 * (\1 - "Q") + $40
-else
-if \1 >= "I"
-x = 2 * (\1 - "I") + $20
-else
-x = 2 * (\1 - "A")
-endc
-endc
-endc
-endc
-	db x
-shift
-endr
-	db -1 ; end
-ENDM
-
-UnownWalls: ; 8aebc
-; UNOWNWORDS_ESCAPE
-	; db      $08, $44, $04, $00, $2e, $08, $ff
-	unownwall "E", "S", "C", "A", "P", "E"
-; UNOWNWORDS_LIGHT
-	; db      $26, $20, $0c, $0e, $46, $ff
-	unownwall "L", "I", "G", "H", "T"
-; UNOWNWORDS_WATER
-	; db      $4c, $00, $46, $08, $42, $ff
-	unownwall "W", "A", "T", "E", "R"
-; UNOWNWORDS_HO_OH
-	; db      $0e, $2c, $64, $2c, $0e, $ff
-	unownwall "H", "O", "-", "O", "H"
-; 8aed5
-
-MenuHeaders_UnownWalls: ; 0x8aed5
-; UNOWNWORDS_ESCAPE
-	db MENU_BACKUP_TILES ; flags
-	menu_coords 3, 4, 16, 9
-; UNOWNWORDS_LIGHT
-	db MENU_BACKUP_TILES ; flags
-	menu_coords 4, 4, 15, 9
-; UNOWNWORDS_WATER
-	db MENU_BACKUP_TILES ; flags
-	menu_coords 4, 4, 15, 9
-; UNOWNWORDS_HO_OH
-	db MENU_BACKUP_TILES ; flags
-	menu_coords 4, 4, 15, 9
-; 8aee9
--- a/data/unown_words.asm
+++ /dev/null
@@ -1,67 +1,0 @@
-unownword: MACRO
-x = 1
-	rept STRLEN(\1)
-	db STRSUB(\1, x, 1) - $40
-x = x + 1
-	endr
-	db -1
-ENDM
-
-UnownWords: ; fba5a
-; entries correspond to Unown forms
-	dw UnownWord1
-	dw UnownWord1
-	dw UnownWord2
-	dw UnownWord3
-	dw UnownWord4
-	dw UnownWord5
-	dw UnownWord6
-	dw UnownWord7
-	dw UnownWord8
-	dw UnownWord9
-	dw UnownWord10
-	dw UnownWord11
-	dw UnownWord12
-	dw UnownWord13
-	dw UnownWord14
-	dw UnownWord15
-	dw UnownWord16
-	dw UnownWord17
-	dw UnownWord18
-	dw UnownWord19
-	dw UnownWord20
-	dw UnownWord21
-	dw UnownWord22
-	dw UnownWord23
-	dw UnownWord24
-	dw UnownWord25
-	dw UnownWord26
-; fba90
-
-UnownWord1:  unownword "ANGRY"
-UnownWord2:  unownword "BEAR"
-UnownWord3:  unownword "CHASE"
-UnownWord4:  unownword "DIRECT"
-UnownWord5:  unownword "ENGAGE"
-UnownWord6:  unownword "FIND"
-UnownWord7:  unownword "GIVE"
-UnownWord8:  unownword "HELP"
-UnownWord9:  unownword "INCREASE"
-UnownWord10: unownword "JOIN"
-UnownWord11: unownword "KEEP"
-UnownWord12: unownword "LAUGH"
-UnownWord13: unownword "MAKE"
-UnownWord14: unownword "NUZZLE"
-UnownWord15: unownword "OBSERVE"
-UnownWord16: unownword "PERFORM"
-UnownWord17: unownword "QUICKEN"
-UnownWord18: unownword "REASSURE"
-UnownWord19: unownword "SEARCH"
-UnownWord20: unownword "TELL"
-UnownWord21: unownword "UNDO"
-UnownWord22: unownword "VANISH"
-UnownWord23: unownword "WANT"
-UnownWord24: unownword "XXXXX"
-UnownWord25: unownword "YIELD"
-UnownWord26: unownword "ZOOM"
-; fbb32
--- a/engine/events/bug_contest/contest_2.asm
+++ b/engine/events/bug_contest/contest_2.asm
@@ -74,7 +74,7 @@
 	ret
 ; 139fe
 
-INCLUDE "data/bug_contest_flags.asm"
+INCLUDE "data/events/bug_contest_flags.asm"
 
 ContestDropOffMons: ; 13a12
 	ld hl, PartyMon1HP
--- a/engine/events/bug_contest/judging.asm
+++ b/engine/events/bug_contest/judging.asm
@@ -134,7 +134,7 @@
 ; 13783
 
 
-INCLUDE "data/bug_contest_winners.asm"
+INCLUDE "data/events/bug_contest_winners.asm"
 ; 13807
 
 
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -229,4 +229,4 @@
 	ret
 ; 13583
 
-INCLUDE "data/elevator_floors.asm"
+INCLUDE "data/events/elevator_floors.asm"
--- a/engine/events/happiness_egg.asm
+++ b/engine/events/happiness_egg.asm
@@ -103,7 +103,7 @@
 	ret
 
 
-INCLUDE "data/happiness_changes.asm"
+INCLUDE "data/events/happiness_changes.asm"
 
 
 StepHappiness:: ; 725a
--- a/engine/events/magikarp.asm
+++ b/engine/events/magikarp.asm
@@ -189,7 +189,7 @@
 
 .no
 
-	ld hl, .Lengths
+	ld hl, MagikarpLengths
 	ld a, 2
 	ld [wd265], a
 
@@ -308,26 +308,7 @@
 	ret
 ; fbca8
 
-.Lengths: ; fbca8
-; [wMagikarpLength] = z * 100 + (bc - x) / y
-; First argument is the bc threshold as well as x.
-; Second argument is y.
-; In reality, due to the bug at .BCLessThanDE, the threshold is determined by only register b.
-	dwb   110, 1 ; not used unless the bug is fixed
-	dwb   310, 2
-	dwb   710, 4
-	dwb  2710, 20
-	dwb  7710, 50
-	dwb 17710, 100
-	dwb 32710, 150
-	dwb 47710, 150
-	dwb 57710, 100
-	dwb 62710, 50
-	dwb 64710, 20
-	dwb 65210, 5
-	dwb 65410, 2
-	dwb 65510, 1 ; not used
-; fbcd2
+INCLUDE "data/events/magikarp_lengths.asm"
 
 
 
--- a/engine/events/odd_egg.asm
+++ b/engine/events/odd_egg.asm
@@ -93,4 +93,4 @@
 .Odd:
 	db "ODD@@@@@@@@@"
 
-INCLUDE "data/odd_eggs.asm"
+INCLUDE "data/events/odd_eggs.asm"
--- a/engine/events/overworld.asm
+++ b/engine/events/overworld.asm
@@ -277,7 +277,7 @@
 	ret
 
 
-INCLUDE "data/field_move_blocks.asm"
+INCLUDE "data/events/field_move_blocks.asm"
 
 
 OWFlash: ; c8ac
--- a/engine/events/prof_oaks_pc.asm
+++ b/engine/events/prof_oaks_pc.asm
@@ -98,27 +98,7 @@
 	ld l, a
 	ret
 
-OakRatings: ; 0x2667f
-; if you caught at most this many, play this sound, load this text
-	dbww   9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
-	dbww  19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
-	dbww  34, SFX_DEX_FANFARE_20_49,        OakRating03
-	dbww  49, SFX_DEX_FANFARE_20_49,        OakRating04
-	dbww  64, SFX_DEX_FANFARE_50_79,        OakRating05
-	dbww  79, SFX_DEX_FANFARE_50_79,        OakRating06
-	dbww  94, SFX_DEX_FANFARE_80_109,       OakRating07
-	dbww 109, SFX_DEX_FANFARE_80_109,       OakRating08
-	dbww 124, SFX_CAUGHT_MON,               OakRating09
-	dbww 139, SFX_CAUGHT_MON,               OakRating10
-	dbww 154, SFX_DEX_FANFARE_140_169,      OakRating11
-	dbww 169, SFX_DEX_FANFARE_140_169,      OakRating12
-	dbww 184, SFX_DEX_FANFARE_170_199,      OakRating13
-	dbww 199, SFX_DEX_FANFARE_170_199,      OakRating14
-	dbww 214, SFX_DEX_FANFARE_200_229,      OakRating15
-	dbww 229, SFX_DEX_FANFARE_200_229,      OakRating16
-	dbww 239, SFX_DEX_FANFARE_230_PLUS,     OakRating17
-	dbww 248, SFX_DEX_FANFARE_230_PLUS,     OakRating18
-	dbww 255, SFX_DEX_FANFARE_230_PLUS,     OakRating19
+INCLUDE "data/events/pokedex_ratings.asm"
 
 OakPCText1: ; 0x266de
 	text_jump _OakPCText1
--- a/engine/events/special.asm
+++ b/engine/events/special.asm
@@ -156,15 +156,15 @@
 	ret
 
 YoungerHaircutBrother: ; 7413
-	ld hl, Data_YoungerHaircutBrother
+	ld hl, HappinessData_YoungerHaircutBrother
 	jr HaircutOrGrooming
 
 OlderHaircutBrother: ; 7418
-	ld hl, Data_OlderHaircutBrother
+	ld hl, HappinessData_OlderHaircutBrother
 	jr HaircutOrGrooming
 
 DaisysGrooming: ; 741d
-	ld hl, Data_DaisysGrooming
+	ld hl, HappinessData_DaisysGrooming
 	; fallthrough
 
 HaircutOrGrooming: ; 7420
@@ -213,18 +213,7 @@
 	ld [ScriptVar], a
 	ret
 
-Data_YoungerHaircutBrother: ; 7459
-	db $4c, 2, HAPPINESS_YOUNGCUT1 ; 30% chance
-	db $80, 3, HAPPINESS_YOUNGCUT2 ; 20% chance
-	db $ff, 4, HAPPINESS_YOUNGCUT3 ; 50% chance
-
-Data_OlderHaircutBrother: ; 7462
-	db $9a, 2, HAPPINESS_OLDERCUT1 ; 60% chance
-	db $4c, 3, HAPPINESS_OLDERCUT2 ; 10% chance
-	db $ff, 4, HAPPINESS_OLDERCUT3 ; 30% chance
-
-Data_DaisysGrooming: ; 746b
-	db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
+INCLUDE "data/events/happiness_chances.asm"
 
 CopyPokemonName_Buffer1_Buffer3: ; 746e
 	ld hl, StringBuffer1
--- a/engine/events/std_collision.asm
+++ b/engine/events/std_collision.asm
@@ -23,7 +23,7 @@
 	xor a
 	ret
 
-INCLUDE "data/collision_stdscripts.asm"
+INCLUDE "data/events/collision_stdscripts.asm"
 
 Script_JumpStdFromRAM: ; 0x1369a
 	jump wJumpStdScriptBuffer
--- a/engine/events/unown_walls.asm
+++ b/engine/events/unown_walls.asm
@@ -153,7 +153,7 @@
 	ret
 ; 8aebc
 
-INCLUDE "data/unown_walls.asm"
+INCLUDE "data/events/unown_walls.asm"
 
 _DisplayUnownWords_FillAttr: ; 8aee9
 	ld a, [de]
--- a/engine/items.asm
+++ b/engine/items.asm
@@ -11,6 +11,7 @@
 	ret
 
 .Pockets: ; d1e9
+; entries correspond to item types
 	dw .Item
 	dw .KeyItem
 	dw .Ball
@@ -51,6 +52,7 @@
 	ret
 
 .Pockets:
+; entries correspond to item types
 	dw .Item
 	dw .KeyItem
 	dw .Ball
@@ -93,6 +95,7 @@
 	ret
 
 .Pockets:
+; entries correspond to item types
 	dw .Item
 	dw .KeyItem
 	dw .Ball
@@ -492,7 +495,7 @@
 ; Return 1 in wItemAttributeParamBuffer and carry if CurItem can't be removed from the bag.
 	ld a, ITEMATTR_PERMISSIONS
 	call GetItemAttr
-	bit 7, a
+	bit CANT_TOSS_F, a
 	jr nz, ItemAttr_ReturnCarry
 	and a
 	ret
@@ -501,7 +504,7 @@
 ; Return 1 in wItemAttributeParamBuffer and carry if CurItem can't be selected.
 	ld a, ITEMATTR_PERMISSIONS
 	call GetItemAttr
-	bit 6, a
+	bit CANT_SELECT_F, a
 	jr nz, ItemAttr_ReturnCarry
 	and a
 	ret
--- a/engine/npctrade.asm
+++ b/engine/npctrade.asm
@@ -401,7 +401,7 @@
 ; fce58
 
 
-INCLUDE "data/npc_trades.asm"
+INCLUDE "data/events/npc_trades.asm"
 
 
 PrintTradeText: ; fcf38
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -60,7 +60,7 @@
 
 GetPlayerSprite: ; 14183
 ; Get Chris or Kris's sprite.
-	ld hl, .Chris
+	ld hl, ChrisStateSprites
 	ld a, [wPlayerSpriteSetupFlags]
 	bit PLAYERSPRITESETUP_FEMALE_TO_MALE_F, a
 	jr nz, .go
@@ -67,7 +67,7 @@
 	ld a, [wPlayerGender]
 	bit PLAYERGENDER_FEMALE_F, a
 	jr z, .go
-	ld hl, .Kris
+	ld hl, KrisStateSprites
 
 .go
 	ld a, [PlayerState]
@@ -95,20 +95,7 @@
 	ld [PlayerObjectSprite], a
 	ret
 
-.Chris:
-	db PLAYER_NORMAL,    SPRITE_CHRIS
-	db PLAYER_BIKE,      SPRITE_CHRIS_BIKE
-	db PLAYER_SURF,      SPRITE_SURF
-	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
-	db -1 ; end
-
-.Kris:
-	db PLAYER_NORMAL,    SPRITE_KRIS
-	db PLAYER_BIKE,      SPRITE_KRIS_BIKE
-	db PLAYER_SURF,      SPRITE_SURF
-	db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
-	db -1 ; end
-; 141c9
+INCLUDE "data/sprites/player_sprites.asm"
 
 
 AddMapSprites: ; 141c9
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -839,6 +839,7 @@
 ; 5057b
 
 .MenuActionTexts: ; 5057b
+; entries correspond to PARTYMENUTEXT_* constants
 	dw .Text_CuredOfPoison
 	dw .Text_BurnWasHealed
 	dw .Text_Defrosted
--- a/engine/phone/phone.asm
+++ b/engine/phone/phone.asm
@@ -704,21 +704,7 @@
 	ret
 ; 903d6 (24:43d6)
 
-NonTrainerCallerNames: ; 903d6
-	dw .none
-	dw .mom
-	dw .bikeshop
-	dw .bill
-	dw .elm
-	dw .buena
-
-.none db "----------@"
-.mom db "MOM:@"
-.bill db "BILL:@"
-.elm db "PROF.ELM:@"
-.bikeshop db "BIKE SHOP:@"
-.buena db "BUENA:<LNBRK>   DISC JOCKEY@"
-; 90423
+INCLUDE "data/phone/non_trainer_names.asm"
 
 Phone_GetTrainerName: ; 90423 (24:4423)
 	push hl
--- a/engine/pokedex/unown_dex.asm
+++ b/engine/pokedex/unown_dex.asm
@@ -49,4 +49,4 @@
 ; fba5a (3e:7a5a)
 
 
-INCLUDE "data/unown_words.asm"
+INCLUDE "data/pokemon/unown_words.asm"
--- a/engine/select_menu.asm
+++ b/engine/select_menu.asm
@@ -33,6 +33,7 @@
 	ret
 
 .Pockets:
+; entries correspond to *_POCKET constants
 	dw .CheckItem
 	dw .CheckBall
 	dw .CheckKeyItem
@@ -127,6 +128,7 @@
 	ret
 
 .SwitchTo:
+; entries correspond to ITEMMENU_* constants
 	dw .CantUse
 	dw .NoFunction
 	dw .NoFunction
--- a/engine/variables.asm
+++ b/engine/variables.asm
@@ -54,7 +54,7 @@
 	dwb MapGroup,                       RETVAR_STRBUF2
 	dwb MapNumber,                      RETVAR_STRBUF2
 	dwb .UnownCaught,                   RETVAR_EXECUTE
-	dwb wEnvironment,                    RETVAR_STRBUF2
+	dwb wEnvironment,                   RETVAR_STRBUF2
 	dwb .BoxFreeSpace,                  RETVAR_EXECUTE
 	dwb wBugContestMinsRemaining,       RETVAR_STRBUF2
 	dwb XCoord,                         RETVAR_STRBUF2