shithub: pokecrystal

Download patch

ref: 86c1e0feea0ba487b020b801835aa19b221edb4d
parent: 0d682e076acd6e742bd711a43ab1c6c7c3492b3c
author: yenatch <[email protected]>
date: Tue Jun 10 19:08:07 EDT 2014

Consolidate NUM_MOVES usage and monster struct labels.

There turned out to be a lot of instances of NUM_MOVES.

--- a/battle/core.asm
+++ b/battle/core.asm
@@ -172,7 +172,7 @@
 	ld [$c73f], a
 	ld [$c740], a
 	ld [CurDamage], a
-	ld [$d257], a
+	ld [CurDamage + 1], a
 	call Function3c27c
 	call UpdateBattleMonInParty
 	callba AIChooseMove
@@ -723,7 +723,7 @@
 	dec a
 	ld [PlayerEncoreCount], a
 	jr z, .asm_3c50a
-	ld hl, BattleMonPPMove1
+	ld hl, BattleMonPP
 	ld a, [CurMoveNum]
 	ld c, a
 	ld b, $0
@@ -747,7 +747,7 @@
 	dec a
 	ld [EnemyEncoreCount], a
 	jr z, .asm_3c535
-	ld hl, EnemyMonPPMove1
+	ld hl, EnemyMonPP
 	ld a, [CurEnemyMoveNum]
 	ld c, a
 	ld b, $0
@@ -1390,7 +1390,7 @@
 .asm_3c957
 	callab GetUserItem
 	ld a, b
-	cp $6
+	cp HELD_RESTORE_PP
 	jr nz, .asm_3c9ae
 	ld hl, PartyMon1PP
 	ld a, [CurBattleMon]
@@ -1397,7 +1397,7 @@
 	call GetPartyLocation
 	ld d, h
 	ld e, l
-	ld hl, PartyMon1Move1
+	ld hl, PartyMon1Moves
 	ld a, [CurBattleMon]
 	call GetPartyLocation
 	ld a, [hBattleTurn]
@@ -1408,12 +1408,12 @@
 	ld a, [IsInBattle]
 	dec a
 	jr z, .asm_3c99b
-	ld hl, OTPartyMon1PPMove1
+	ld hl, OTPartyMon1PP
 	ld a, [CurOTMon]
 	call GetPartyLocation
 	ld d, h
 	ld e, l
-	ld hl, OTPartyMon1Move1
+	ld hl, OTPartyMon1Moves
 	ld a, [CurOTMon]
 	call GetPartyLocation
 
@@ -1430,7 +1430,7 @@
 	inc de
 	inc c
 	ld a, c
-	cp $4
+	cp NUM_MOVES
 	jr nz, .asm_3c99d
 
 .asm_3c9ae
@@ -1437,11 +1437,12 @@
 	ret
 
 .asm_3c9af
+	; lousy hack
 	ld a, [hl]
-	cp $a6
-	ld b, $1
+	cp SKETCH
+	ld b, 1
 	jr z, .asm_3c9b8
-	ld b, $5
+	ld b, 5
 
 .asm_3c9b8
 	ld a, [de]
@@ -1451,18 +1452,18 @@
 	push bc
 	ld a, [hl]
 	ld [$d265], a
-	ld de, BattleMonItem
-	ld hl, BattleMonPPMove1
+	ld de, BattleMonMoves - 1
+	ld hl, BattleMonPP
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3c9d2
-	ld de, EnemyMonItem
-	ld hl, EnemyMonPPMove1
+	ld de, EnemyMonMoves - 1
+	ld hl, EnemyMonPP
 
 .asm_3c9d2
 	inc de
 	pop bc
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	push hl
 	ld h, d
@@ -1542,27 +1543,32 @@
 	ld [hl], a
 	cp $1
 	ret nz
+
 	ld hl, BattleText_0x808b6
 	call StdBattleTextBox
-	ld a, $10
+
+	ld a, BATTLE_VARS_MOVE
 	call _GetBattleVar
 	push af
-	ld a, $f8
+	ld a, FUTURE_SIGHT
 	ld [hl], a
+
 	callab UpdateMoveData
 	xor a
 	ld [AttackMissed], a
 	ld [AlreadyDisobeyed], a
-	ld a, $a
+	ld a, 10
 	ld [TypeModifier], a
 	callab DoMove
 	xor a
 	ld [CurDamage], a
-	ld [$d257], a
-	ld a, $10
+	ld [CurDamage + 1], a
+
+	ld a, BATTLE_VARS_MOVE
 	call _GetBattleVar
 	pop af
 	ld [hl], a
+
 	call UpdateBattleMonInParty
 	jp UpdateEnemyMonInParty
 ; 3ca8f
@@ -1635,12 +1641,12 @@
 	call .asm_3cb1c
 .asm_3cb09
 	ld a, [PlayerScreens]
-	bit 2, a
+	bit SCREENS_SAFEGUARD, a
 	ret z
 	ld hl, $c701
 	dec [hl]
 	ret nz
-	res 2, a
+	res SCREENS_SAFEGUARD, a
 	ld [PlayerScreens], a
 	xor a
 	jr .asm_3cb2e
@@ -1647,12 +1653,12 @@
 
 .asm_3cb1c
 	ld a, [EnemyScreens]
-	bit 2, a
+	bit SCREENS_SAFEGUARD, a
 	ret z
 	ld hl, $c705
 	dec [hl]
 	ret nz
-	res 2, a
+	res SCREENS_SAFEGUARD, a
 	ld [EnemyScreens], a
 	ld a, $1
 
@@ -1676,7 +1682,7 @@
 .CheckPlayer
 	call SetPlayerTurn
 	ld de, .Your
-	call .asm_3cb6f
+	call .Copy
 	ld hl, PlayerScreens
 	ld de, PlayerLightScreenCount
 	jr .FadeScreens
@@ -1684,7 +1690,7 @@
 .CheckEnemy
 	call SetEnemyTurn
 	ld de, .Enemy
-	call .asm_3cb6f
+	call .Copy
 	ld hl, EnemyScreens
 	ld de, EnemyLightScreenCount
 
@@ -1695,7 +1701,7 @@
 	call nz, FadeReflect
 	ret
 
-.asm_3cb6f
+.Copy
 	ld hl, StringBuffer1
 	jp CopyName2
 ; 3cb75
@@ -1852,7 +1858,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3cc50
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 
 .asm_3cc50
 	inc hl
@@ -2099,7 +2105,7 @@
 	call nz, Function3df48
 	ld a, $1
 	ld [hBGMapMode], a
-	ld c, $3c
+	ld c, 60
 	call DelayFrames
 	ld a, [IsInBattle]
 	dec a
@@ -2147,7 +2153,7 @@
 	jr z, .asm_3cde6
 	call ClearSprites
 	hlcoord 1, 0
-	ld bc, $040a
+	lb bc, 4, 10
 	call ClearBox
 	call Function3d2b3
 	ld a, $1
@@ -2264,13 +2270,13 @@
 Function3ceaa: ; 3ceaa
 	ld a, [PartyCount]
 	ld b, a
-	ld hl, PartyMon1Species
+	ld hl, PartyMon1
 	ld c, $1
 	ld d, $0
 .asm_3ceb5
 	push hl
 	push bc
-	ld bc, $0022
+	ld bc, PartyMon1HP - PartyMon1
 	add hl, bc
 	ld a, [hli]
 	or [hl]
@@ -2277,14 +2283,16 @@
 	pop bc
 	pop hl
 	jr z, .asm_3ced1
+
 	push hl
 	push bc
-	ld bc, $0001
+	ld bc, PartyMon1Item - PartyMon1
 	add hl, bc
 	pop bc
 	ld a, [hl]
 	pop hl
-	cp $39
+
+	cp EXP_SHARE
 	jr nz, .asm_3ced1
 	ld a, d
 	or c
@@ -2293,7 +2301,7 @@
 .asm_3ced1
 	sla c
 	push de
-	ld de, $0030
+	ld de, PartyMon2 - PartyMon1
 	add hl, de
 	pop de
 	dec b
@@ -2331,7 +2339,7 @@
 	call Function37b6
 	call Function3d43b
 	hlcoord 9, 7
-	ld bc, $050b
+	lb bc, 5, 11
 	call ClearBox
 	ld hl, BattleText_0x80a75
 	jp StdBattleTextBox
@@ -2345,7 +2353,7 @@
 	ld de, SFX_UNKNOWN_2A
 	call PlaySFX
 	hlcoord 1, 0
-	ld bc, $040a
+	lb bc, 4, 10
 	call ClearBox
 	ld hl, BattleText_0x809a8
 	jp StdBattleTextBox
@@ -2356,7 +2364,7 @@
 	ld b, a
 	xor a
 	ld hl, OTPartyMon1HP
-	ld de, $0030
+	ld de, PartyMon2 - PartyMon1
 .asm_3cf40
 	or [hl]
 	inc hl
@@ -2494,7 +2502,7 @@
 	push af
 	ld a, $0
 	jr nc, .asm_3d044
-	ld a, [$d854]
+	ld a, [wMomSavingMoney]
 	and $7
 	cp $3
 	jr nz, .asm_3d044
@@ -2525,7 +2533,7 @@
 	call Function3d099
 	pop af
 	jr nc, .asm_3d07b
-	ld a, [$d854]
+	ld a, [wMomSavingMoney]
 	and $7
 	jr z, .asm_3d07b
 	ld hl, SentToMomTexts
@@ -2547,7 +2555,7 @@
 Function3d081: ; 3d081
 	push bc
 	ld hl, $c688
-	ld de, $d853
+	ld de, wMomsMoney + 2
 	call Function3d0be
 	pop bc
 	ret
@@ -2556,7 +2564,7 @@
 Function3d08d: ; 3d08d
 	push bc
 	ld hl, $c688
-	ld de, $d850
+	ld de, Money + 2
 	call Function3d0be
 	pop bc
 	ret
@@ -2585,13 +2593,13 @@
 
 
 Function3d0b1: ; 3d0b1
-	ld hl, $d853
+	ld hl, wMomsMoney + 2
 	ld a, [hld]
-	cp $3f
+	cp 999999 % $100
 	ld a, [hld]
-	sbc $42
+	sbc 999999 / $100 % $100
 	ld a, [hl]
-	sbc $f
+	sbc 999999 / $10000 % $100
 	ret
 ; 3d0be
 
@@ -2616,17 +2624,17 @@
 	jr nz, .asm_3d0ce
 	pop hl
 	ld a, [hld]
-	cp $3f
+	cp 999999 % $100
 	ld a, [hld]
-	sbc $42
+	sbc 999999 / $100 % $100
 	ld a, [hl]
-	sbc $f
+	sbc 999999 / $10000 % $100
 	ret c
-	ld [hl], $f
+	ld [hl], 999999 / $10000 % $100
 	inc hl
-	ld [hl], $42
+	ld [hl], 999999 / $100 % $100
 	inc hl
-	ld [hl], $3f
+	ld [hl], 999999 % $100
 	ret
 ; 3d0ea
 
@@ -3412,7 +3420,7 @@
 
 Function3d5d7: ; 3d5d7
 	push bc
-	ld hl, OTPartyMon1Move1
+	ld hl, OTPartyMon1Moves
 	ld a, b
 	call GetPartyLocation
 	pop bc
@@ -5531,7 +5539,7 @@
 	ret
 
 .asm_3e4c8
-	ld hl, EnemyMonMove1
+	ld hl, EnemyMonMoves
 	ld a, [$d235]
 	dec a
 	jr z, .asm_3e4e2
@@ -5539,49 +5547,50 @@
 	jr z, .asm_3e4dd
 	call Function3e786
 	ret z
-	ld hl, BattleMonMove1
+	ld hl, BattleMonMoves
 	jr .asm_3e4e2
 
 .asm_3e4dd
-	ld a, $2
+	ld a, PartyMon1Moves - PartyMon1
 	call GetPartyParamLocation
 
 .asm_3e4e2
 	ld de, $d25e
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
 	xor a
 	ld [hBGMapMode], a
-	hlcoord 4, 12
-	ld b, $4
-	ld c, $e
+
+	hlcoord 4, 17 - NUM_MOVES - 1
+	ld b, 4
+	ld c, 14
 	ld a, [$d235]
 	cp $2
 	jr nz, .asm_3e503
-	hlcoord 4, 8
-	ld b, $4
-	ld c, $e
-
+	hlcoord 4, 17 - NUM_MOVES - 1 - 4
+	ld b, 4
+	ld c, 14
 .asm_3e503
 	call TextBox
-	hlcoord 6, 13
+
+	hlcoord 6, 17 - NUM_MOVES
 	ld a, [$d235]
 	cp $2
 	jr nz, .asm_3e513
-	hlcoord 6, 9
-
+	hlcoord 6, 17 - NUM_MOVES - 4
 .asm_3e513
-	ld a, $14
+	ld a, SCREEN_WIDTH
 	ld [Buffer1], a
-	ld a, $20
+	ld a, PREDEF_LIST_MOVES
 	call Predef
-	ld b, $5
+
+	ld b, 5
 	ld a, [$d235]
 	cp $2
-	ld a, $d
+	ld a, 17 - NUM_MOVES
 	jr nz, .asm_3e52c
-	ld b, $5
-	ld a, $9
+	ld b, 5
+	ld a, 17 - NUM_MOVES - 4
 
 .asm_3e52c
 	ld [$cfa1], a
@@ -5641,10 +5650,10 @@
 	and a
 	jr z, .asm_3e5a3
 	hlcoord 5, 13
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	dec a
 	call AddNTimes
-	ld [hl], $ec
+	ld [hl], "▷"
 
 .asm_3e5a3
 	ld a, $1
@@ -5681,10 +5690,10 @@
 .asm_3e5d9
 	pop af
 	ret nz
-	ld hl, BattleMonPPMove1
+	ld hl, BattleMonPP
 	ld a, [$cfa9]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	and $3f
@@ -5699,9 +5708,9 @@
 	and a
 	jr nz, .asm_3e606
 	ld a, [$cfa9]
-	ld hl, BattleMonMove1
+	ld hl, BattleMonMoves
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 
@@ -6018,8 +6027,8 @@
 	bit 4, [hl]
 	ld a, [LastEnemyMove]
 	jp nz, .asm_3e87f
-	ld hl, EnemyMonMove1
-	ld b, $0
+	ld hl, EnemyMonMoves
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	jp .asm_3e87f
@@ -6041,9 +6050,9 @@
 	jr .asm_3e87f
 
 .asm_3e830
-	ld hl, EnemyMonMove1
-	ld de, EnemyMonPPMove1
-	ld b, $4
+	ld hl, EnemyMonMoves
+	ld de, EnemyMonPP
+	ld b, NUM_MOVES
 .asm_3e838
 	ld a, [hl]
 	and a
@@ -6067,11 +6076,11 @@
 	dec a
 	jr nz, .asm_3e882
 .asm_3e855
-	ld hl, EnemyMonMove1
+	ld hl, EnemyMonMoves
 	call BattleRandom
-	and $3
+	and 3 ; TODO factor in NUM_MOVES
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [EnemyDisableCount]
 	swap a
@@ -6082,7 +6091,7 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_3e855
-	ld hl, EnemyMonPPMove1
+	ld hl, EnemyMonPP
 	add hl, bc
 	ld b, a
 	ld a, [hl]
@@ -6105,7 +6114,7 @@
 
 .asm_3e894
 	ld a, [EnemyMoveEffect]
-	cp $77
+	cp EFFECT_FURY_CUTTER
 	jr z, .asm_3e89f
 	xor a
 	ld [EnemyFuryCutterCount], a
@@ -6112,18 +6121,18 @@
 
 .asm_3e89f
 	ld a, [EnemyMoveEffect]
-	cp $51
+	cp EFFECT_RAGE
 	jr z, .asm_3e8af
 	ld hl, EnemySubStatus4
-	res 6, [hl]
+	res SUBSTATUS_RAGE, [hl]
 	xor a
 	ld [$c72c], a
 
 .asm_3e8af
 	ld a, [EnemyMoveEffect]
-	cp $6f
+	cp EFFECT_PROTECT
 	ret z
-	cp $74
+	cp EFFECT_ENDURE
 	ret z
 	xor a
 	ld [$c681], a
@@ -6140,20 +6149,20 @@
 	ld [$c681], a
 	ld [$c72c], a
 	ld hl, EnemySubStatus4
-	res 6, [hl]
+	res SUBSTATUS_RAGE, [hl]
 	ret
 ; 3e8d1
 
 Function3e8d1: ; 3e8d1
 	ld a, [EnemySubStatus4]
-	and $20
+	and 1 << SUBSTATUS_RECHARGE
 	ret nz
 	ld hl, EnemySubStatus3
 	ld a, [hl]
-	and $13
+	and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_BIDE
 	ret nz
 	ld hl, EnemySubStatus1
-	bit 6, [hl]
+	bit SUBSTATUS_ENCORED, [hl]
 	ret
 ; 3e8e4
 
@@ -8520,19 +8529,19 @@
 	ld [IsInBattle], a
 	callba Function10605d
 	call LoadEnemyMon
-	ld hl, EnemyMonMove1
+	ld hl, EnemyMonMoves
 	ld de, $c735
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
-	ld hl, EnemyMonPPMove1
+	ld hl, EnemyMonPP
 	ld de, $c739
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
 	ld hl, EnemyMonAtkDefDV
 	ld a, $2d
 	call Predef
 	ld a, [CurPartySpecies]
-	cp $c9
+	cp UNOWN
 	jr nz, .asm_3f648
 	ld a, [$def4]
 	and a
@@ -8555,9 +8564,9 @@
 ; 3f662
 
 Function3f662: ; 3f662
-	ld hl, EnemyMonMove1
+	ld hl, EnemyMonMoves
 	ld de, $d25e
-	ld b, 4
+	ld b, NUM_MOVES
 .loop
 	ld a, [de]
 	inc de
@@ -8618,7 +8627,7 @@
 	and a
 	jr z, .asm_3f6b7
 	call Function3f759
-	ld c, $96
+	ld c, 150
 	call DelayFrames
 	call Function3f77c
 	ret
@@ -8693,7 +8702,7 @@
 
 .asm_3f73d
 	ld hl, $c6ee
-	ld de, $d850
+	ld de, Money + 2
 	call Function3d0be
 	ld hl, BattleText_0x80730
 	call StdBattleTextBox
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -905,7 +905,7 @@
 .UseInstead
 
 ; Can't use another move if the monster only has one!
-	ld a, [BattleMonMove2]
+	ld a, [BattleMonMoves + 1]
 	and a
 	jr z, .DoNothing
 
@@ -1744,8 +1744,8 @@
 
 
 Function348de: ; 348de
-	ld de, EnemyMonMove1
-	ld b, 5
+	ld de, EnemyMonMoves
+	ld b, NUM_MOVES + 1
 	ld c, 0
 
 	ld a, [$d265]
@@ -1775,7 +1775,7 @@
 	jr z, .loop
 
 	inc c
-	cp $a
+	cp 10
 	jr c, .loop
 
 	inc c
@@ -1784,10 +1784,10 @@
 	inc c
 	inc c
 
-	cp $a
+	cp 10
 	jr z, .loop
 
-	ld c, $64
+	ld c, 100
 	jr .loop
 .exit
 
@@ -1797,9 +1797,9 @@
 	ld a, c
 	and a
 	jr z, .doubledown ; double down
-	cp $5
+	cp 5
 	jr c, Function34931 ; down
-	cp $64
+	cp 100
 	ret c
 	jr Function34939 ; up
 
@@ -1833,11 +1833,11 @@
 	ret c
 
 	ld a, [EnemySubStatus1]
-	bit 4, a
+	bit SUBSTATUS_PERISH, a
 	jr z, .asm_34986
 
-	ld a, [$c67f]
-	cp $1
+	ld a, [EnemyPerishCount]
+	cp 1
 	jr nz, .asm_34986
 
 	call Function349f4
@@ -1969,10 +1969,11 @@
 	ld a, c
 	or b
 	ld c, a
+
 .asm_34a16
 	srl b
 	push bc
-	ld bc, $30
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 	inc e
@@ -2010,7 +2011,7 @@
 
 	push hl
 	push bc
-	ld bc, $0022
+	ld bc, PartyMon1HP - PartyMon1
 	add hl, bc
 	pop bc
 	ld a, [hli]
@@ -2045,7 +2046,7 @@
 	ret z
 
 	push bc
-	ld bc, $30
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 
@@ -2074,7 +2075,7 @@
 .asm_34a98
 	srl b
 	push bc
-	ld bc, $2f
+	ld bc, PartyMon2HP - (PartyMon1HP + 1)
 	add hl, bc
 	pop bc
 	dec e
@@ -2093,7 +2094,7 @@
 
 	ld a, $ff
 	ld [$c716], a
-	ld hl, OTPartyMon1Move1
+	ld hl, OTPartyMon1Moves
 	ld b, $20
 	ld d, $0
 	ld e, $0
@@ -2104,7 +2105,7 @@
 
 	push hl
 	push bc
-	ld b, $4
+	ld b, NUM_MOVES
 	ld c, $0
 .asm_34abf
 	ld a, [hli]
@@ -2159,7 +2160,7 @@
 
 .asm_34b00
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 	srl b
@@ -2288,7 +2289,7 @@
 	srl b
 	pop hl
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 	jr .asm_34b82
@@ -4991,17 +4992,17 @@
 	jr nz, .asm_35ba3 ; 35b3a $67
 	ld a, [hBattleTurn]
 	and a
-	ld hl, BattleMonMove2
+	ld hl, BattleMonMoves + 1
 	ld a, [DisabledMove]
 	ld d, a
 	jr z, .asm_35b4f ; 35b46 $7
-	ld hl, EnemyMonMove2
+	ld hl, EnemyMonMoves + 1
 	ld a, [EnemyDisabledMove]
 	ld d, a
 .asm_35b4f
 	ld a, BATTLE_VARS_STATUS
 	call GetBattleVar
-	and $7
+	and SLP
 	jr z, .asm_35ba3 ; 35b56 $4b
 	ld a, [hl]
 	and a
@@ -5012,9 +5013,9 @@
 .asm_35b62
 	push hl
 	call BattleRandom
-	and $3
+	and 3 ; TODO factor in NUM_MOVES
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	pop hl
@@ -5068,11 +5069,11 @@
 	ld a, [EnemyDisabledMove]
 .asm_35bbe
 	ld b, a
-	ld a, $10
+	ld a, BATTLE_VARS_MOVE
 	call GetBattleVar
 	ld c, a
 	dec hl
-	ld d, $4
+	ld d, NUM_MOVES
 .asm_35bc8
 	ld a, [hl]
 	and a
@@ -5112,17 +5113,17 @@
 	pop de
 	pop hl
 
-	cp $91
+	cp EFFECT_SKULL_BASH
 	ret z
-	cp $27
+	cp EFFECT_RAZOR_WIND
 	ret z
-	cp $4b
+	cp EFFECT_SKY_ATTACK
 	ret z
-	cp $97
+	cp EFFECT_SOLARBEAM
 	ret z
-	cp $9b
+	cp EFFECT_FLY
 	ret z
-	cp $1a
+	cp EFFECT_BIDE
 	ret
 ; 35bff
 
@@ -5132,7 +5133,7 @@
 
 	ld a, BATTLE_VARS_SUBSTATUS5
 	call _GetBattleVar
-	set 6, [hl]
+	set SUBSTATUS_DESTINY_BOND, [hl]
 	call AnimateCurrentMove
 	ld hl, DestinyBondEffectText
 	jp StdBattleTextBox
@@ -5156,7 +5157,7 @@
 	call GetBattleVar
 	and a
 	jr z, .asm_35c91 ; 35c2a $65
-	cp $a5
+	cp STRUGGLE
 	jr z, .asm_35c91 ; 35c2e $61
 	ld b, a
 	ld c, $ff
@@ -5178,7 +5179,7 @@
 	push bc
 	call GetMoveName
 	call BattleRandom
-	and $3
+	and 3
 	inc a
 	inc a
 	ld b, a
@@ -5192,7 +5193,7 @@
 	sub b
 	ld [hl], a
 	push af
-	ld a, $17
+	ld a, PartyMon1PP - PartyMon1
 	call OpponentPartyAttr
 	ld d, b
 	pop af
@@ -5275,7 +5276,7 @@
 
 	ld a, BATTLE_VARS_SUBSTATUS1
 	call _GetBattleVar
-	res 0, [hl]
+	res SUBSTATUS_NIGHTMARE, [hl]
 	ld de, PartyMon1Status
 	ld a, [hBattleTurn]
 	and a
@@ -5288,8 +5289,8 @@
 	ld [hl], a
 	ld h, d
 	ld l, e
-	ld bc, $30
-	ld d, $6
+	ld bc, PartyMon2 - PartyMon1
+	ld d, PartyEnd - PartySpecies
 .asm_35ce9
 	ld [hl], a
 	add hl, bc
@@ -5313,7 +5314,7 @@
 ; battle animations disabled?
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVar
-	and $60 ; bit 6 | 5
+	and 1 << 6 | 1 << 5
 	ret nz
 
 	; fallthrough
@@ -5347,19 +5348,19 @@
 	jr nz, .asm_35d31
 
 	ld a, [EnemySubStatus4]
-	bit 4, a
+	bit SUBSTATUS_SUBSTITUTE, a
 	jp nz, Function35de0
 .asm_35d31
 	ld a, [hld]
 	ld b, a
-	ld a, [EnemyMonHPLo]
+	ld a, [EnemyMonHP + 1]
 	ld [$d1ec], a
 	sub b
-	ld [EnemyMonHPLo], a
+	ld [EnemyMonHP + 1], a
 	ld a, [hl]
 	ld b, a
-	ld a, [EnemyMonHPHi]
-	ld [$d1ed], a
+	ld a, [EnemyMonHP]
+	ld [$d1ec + 1], a
 	sbc b
 	ld [EnemyMonHPHi], a
 	jr nc, .asm_35d59
@@ -5368,17 +5369,19 @@
 	ld [hli], a
 	ld a, [$d1ec]
 	ld [hl], a
+
 	xor a
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld [hli], a
 	ld [hl], a
+
 .asm_35d59
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld [$d1eb], a
 	ld a, [hl]
 	ld [$d1ea], a
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	ld [$d1ef], a
 	ld a, [hl]
@@ -5406,29 +5409,30 @@
 	jr nz, .asm_35d93
 
 	ld a, [PlayerSubStatus4]
-	bit 4, a
+	bit SUBSTATUS_SUBSTITUTE, a
 	jp nz, Function35de0
 .asm_35d93
 	ld a, [hld]
 	ld b, a
-	ld a, [$c63d]
+	ld a, [BattleMonHP + 1]
 	ld [$d1ec], a
 	sub b
-	ld [$c63d], a
+	ld [BattleMonHP + 1], a
 	ld [$d1ee], a
 	ld b, [hl]
 	ld a, [BattleMonHP]
-	ld [$d1ed], a
+	ld [$d1ec + 1], a
 	sbc b
 	ld [BattleMonHP], a
-	ld [$d1ef], a
+	ld [$d1ee + 1], a
 	jr nc, .asm_35dc5
 
-	ld a, [$d1ed]
+	ld a, [$d1ec + 1]
 	ld [hli], a
 	ld a, [$d1ec]
 	ld [hl], a
 	xor a
+
 	ld hl, BattleMonHP
 	ld [hli], a
 	ld [hl], a
@@ -5435,6 +5439,7 @@
 	ld hl, $d1ee
 	ld [hli], a
 	ld [hl], a
+
 .asm_35dc5
 	ld hl, BattleMonMaxHP
 	ld a, [hli]
@@ -5456,29 +5461,28 @@
 	ld hl, SubTookDamageText
 	call StdBattleTextBox
 
-	ld de, $c6e0
+	ld de, EnemySubstituteHP
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_35df1
+	jr z, .got_hp
+	ld de, PlayerSubstituteHP
+.got_hp
 
-	ld de, $c6df
-.asm_35df1
 	ld hl, CurDamage
 	ld a, [hli]
 	and a
-	jr nz, .asm_35dff
+	jr nz, .broke
 
 	ld a, [de]
 	sub [hl]
 	ld [de], a
-	jr z, .asm_35dff
+	jr z, .broke
+	jr nc, .done
 
-	jr nc, .asm_35e3d
-
-.asm_35dff
+.broke
 	ld a, BATTLE_VARS_SUBSTATUS4_OPP
 	call _GetBattleVar
-	res 4, [hl]
+	res SUBSTATUS_SUBSTITUTE, [hl]
 
 	ld hl, SubFadedText
 	call StdBattleTextBox
@@ -5487,7 +5491,7 @@
 	call BattleCommanda7
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVar
-	and $60 ; fly | dig
+	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
 	call z, Function37ec7
 	call SwitchTurn
 
@@ -5494,21 +5498,20 @@
 	ld a, BATTLE_VARS_MOVE_EFFECT
 	call _GetBattleVar
 	cp EFFECT_MULTI_HIT
-	jr z, .asm_35e3a
+	jr z, .ok
 	cp EFFECT_DOUBLE_HIT
-	jr z, .asm_35e3a
+	jr z, .ok
 	cp EFFECT_TWINEEDLE
-	jr z, .asm_35e3a
+	jr z, .ok
 	cp EFFECT_TRIPLE_KICK
-	jr z, .asm_35e3a
+	jr z, .ok
 	cp EFFECT_BEAT_UP
-	jr z, .asm_35e3a
-
+	jr z, .ok
 	xor a
 	ld [hl], a
-.asm_35e3a
+.ok
 	call RefreshBattleHuds
-.asm_35e3d
+.done
 	jp ResetDamage
 ; 35e40
 
@@ -8271,17 +8274,19 @@
 
 	call BattleCommandaa
 	ld hl, BattleMonMaxHP
-	ld de, $c6df
+	ld de, PlayerSubstituteHP
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_36e90 ; 36e88 $6
-	ld hl, EnemyMonMaxHPHi
-	ld de, $c6e0
-.asm_36e90
+	jr z, .got_hp
+	ld hl, EnemyMonMaxHP
+	ld de, EnemySubstituteHP
+.got_hp
+
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call GetBattleVar
-	bit 4, a
+	bit SUBSTATUS_SUBSTITUTE, a
 	jr nz, .asm_36ef4 ; 36e97 $5b
+
 	ld a, [hli]
 	ld b, [hl]
 	srl a
@@ -8296,7 +8301,7 @@
 	sub b
 	ld e, a
 	ld a, [hl]
-	sbc $0
+	sbc 0
 	ld d, a
 	jr c, .asm_36eff ; 36eae $4f
 	ld a, d
@@ -8305,22 +8310,26 @@
 	ld [hl], d
 	inc hl
 	ld [hl], e
+
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	set 4, [hl]
+	set SUBSTATUS_SUBSTITUTE, [hl]
+
 	ld hl, $c730
 	ld de, $c72e
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_36ecf ; 36ec7 $6
+	jr z, .asm_36ecf
 	ld hl, $c731
 	ld de, $c72f
 .asm_36ecf
+
 	xor a
 	ld [hl], a
 	ld [de], a
 	call Function37ed5
 	jr c, .asm_36ee8 ; 36ed5 $11
+
 	xor a
 	ld [$cfca], a
 	ld [FXAnimIDHi], a
@@ -8328,6 +8337,7 @@
 	ld a, $a4
 	call Function37e44
 	jr .asm_36eeb ; 36ee6 $3
+
 .asm_36ee8
 	call BattleCommanda6
 .asm_36eeb
@@ -8334,11 +8344,13 @@
 	ld hl, MadeSubstituteText
 	call StdBattleTextBox
 	jp RefreshBattleHuds
+
 .asm_36ef4
 	call Function34548
 	call nz, BattleCommand0c
 	ld hl, HasSubstituteText
-	jr .asm_36f08 ; 36efd $9
+	jr .asm_36f08
+
 .asm_36eff
 	call Function34548
 	call nz, BattleCommand0c
@@ -8351,7 +8363,7 @@
 ; rechargenextturn
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	set 5, [hl]
+	set SUBSTATUS_RECHARGE, [hl]
 	ret
 ; 36f13
 
@@ -8360,7 +8372,7 @@
 	push hl
 	ld a, BATTLE_VARS_SUBSTATUS4_OPP
 	call _GetBattleVar
-	res 5, [hl]
+	res SUBSTATUS_RECHARGE, [hl]
 	pop hl
 	ret
 ; 36f1d
@@ -8370,7 +8382,7 @@
 ; rage
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	set 6, [hl]
+	set SUBSTATUS_RAGE, [hl]
 	ret
 ; 36f25
 
@@ -8431,10 +8443,10 @@
 	call GetBattleVar
 	and a
 	jr z, .asm_36f9a ; 36f68 $30
-	cp $a5
+	cp STRUGGLE
 	jr z, .asm_36f9a ; 36f6c $2c
 	ld b, a
-	ld c, $4
+	ld c, NUM_MOVES
 .asm_36f71
 	ld a, [hli]
 	cp b
@@ -8444,7 +8456,7 @@
 	dec hl
 .asm_36f79
 	ld a, [hld]
-	cp $66
+	cp MIMIC
 	jr nz, .asm_36f79 ; 36f7c $fb
 	inc hl
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -8451,9 +8463,9 @@
 	call GetBattleVar
 	ld [hl], a
 	ld [$d265], a
-	ld bc, $0006
+	ld bc, BattleMonPP - BattleMonMoves
 	add hl, bc
-	ld [hl], $5
+	ld [hl], 5
 	call GetMoveName
 	call AnimateCurrentMove
 	ld hl, LearnedMoveText
@@ -8467,34 +8479,39 @@
 ; leechseed
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_36fd8 ; 36fa1 $35
+	jr nz, .evaded
 	call CheckSubstituteOpp
-	jr nz, .asm_36fd8 ; 36fa6 $30
+	jr nz, .evaded
+
 	ld de, EnemyMonType1
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_36fb3 ; 36fae $3
+	jr z, .ok
 	ld de, BattleMonType1
-.asm_36fb3
+.ok
+
 	ld a, [de]
-	cp $16
-	jr z, .asm_36fd2 ; 36fb6 $1a
+	cp GRASS
+	jr z, .grass
 	inc de
 	ld a, [de]
-	cp $16
-	jr z, .asm_36fd2 ; 36fbc $14
+	cp GRASS
+	jr z, .grass
+
 	ld a, BATTLE_VARS_SUBSTATUS4_OPP
 	call _GetBattleVar
-	bit 7, [hl]
-	jr nz, .asm_36fd8 ; 36fc5 $11
-	set 7, [hl]
+	bit SUBSTATUS_LEECH_SEED, [hl]
+	jr nz, .evaded
+	set SUBSTATUS_LEECH_SEED, [hl]
 	call AnimateCurrentMove
 	ld hl, WasSeededText
 	jp StdBattleTextBox
-.asm_36fd2
+
+.grass
 	call AnimateFailedMove
 	jp PrintDoesntAffect
-.asm_36fd8
+
+.evaded
 	call AnimateFailedMove
 	ld hl, EvadedText
 	jp StdBattleTextBox
@@ -8514,6 +8531,7 @@
 	ld a, [AttackMissed]
 	and a
 	jr nz, .asm_37059 ; 36ff1 $66
+
 	ld de, EnemyDisableCount
 	ld hl, EnemyMonMoves
 	ld a, [hBattleTurn]
@@ -8522,15 +8540,18 @@
 	ld de, PlayerDisableCount
 	ld hl, BattleMonMoves
 .asm_37004
+
 	ld a, [de]
 	and a
 	jr nz, .asm_37059 ; 37006 $51
+
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
 	call GetBattleVar
 	and a
 	jr z, .asm_37059 ; 3700e $49
-	cp $a5
+	cp STRUGGLE
 	jr z, .asm_37059 ; 37012 $45
+
 	ld b, a
 	ld c, $ff
 .asm_37017
@@ -8538,13 +8559,14 @@
 	ld a, [hli]
 	cp b
 	jr nz, .asm_37017 ; 3701a $fb
+
 	ld a, [hBattleTurn]
 	and a
-	ld hl, EnemyMonPPMove1
+	ld hl, EnemyMonPP
 	jr z, .asm_37027 ; 37022 $3
 	ld hl, BattleMonPP
 .asm_37027
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	and a
@@ -8551,7 +8573,7 @@
 	jr z, .asm_37059 ; 3702c $2b
 .asm_3702e
 	call BattleRandom
-	and $7
+	and 7
 	jr z, .asm_3702e ; 37033 $f9
 	inc a
 	inc c
@@ -8583,22 +8605,24 @@
 	xor a
 	ld hl, StringBuffer1
 	ld [hli], a
+
 	ld a, [hBattleTurn]
 	and a
 	ld a, [BattleMonLevel]
-	jr z, .asm_3706c ; 37067 $3
+	jr z, .ok
 	ld a, [EnemyMonLevel]
-.asm_3706c
+.ok
+
 	add a
 	ld hl, $c6ee
 	add [hl]
 	ld [hld], a
-	jr nc, .asm_37079 ; 37072 $5
+	jr nc, .done
 	inc [hl]
 	dec hl
-	jr nz, .asm_37079 ; 37076 $1
+	jr nz, .done
 	inc [hl]
-.asm_37079
+.done
 	ld hl, CoinsScatteredText
 	jp StdBattleTextBox
 ; 3707f
@@ -8611,7 +8635,7 @@
 	ld de, BattleMonType1
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_37090 ; 37088 $6
+	jr z, .asm_37090
 	ld hl, EnemyMonMoves
 	ld de, EnemyMonType1
 .asm_37090
@@ -8625,7 +8649,7 @@
 	ld a, [hl]
 	pop hl
 	and a
-	jr z, .asm_370b2 ; 3709d $13
+	jr z, .asm_370b2
 	push hl
 	push bc
 	dec a
@@ -8637,8 +8661,8 @@
 	pop hl
 	inc c
 	ld a, c
-	cp $4
-	jr c, .asm_37096 ; 370b0 $e4
+	cp NUM_MOVES
+	jr c, .asm_37096
 .asm_370b2
 	ld a, $ff
 	ld [de], a
@@ -8651,43 +8675,44 @@
 .asm_370bd
 	ld a, [hl]
 	cp $ff
-	jr z, .asm_370d3 ; 370c0 $11
-	cp $13
-	jr z, .asm_370d0 ; 370c4 $a
+	jr z, .asm_370d3
+	cp CURSE_T
+	jr z, .asm_370d0
 	ld a, [de]
 	cp [hl]
-	jr z, .asm_370d0 ; 370c8 $6
+	jr z, .asm_370d0
 	inc de
 	ld a, [de]
 	dec de
 	cp [hl]
-	jr nz, .asm_370d9 ; 370ce $9
+	jr nz, .asm_370d9_a
 .asm_370d0
 	inc hl
-	jr .asm_370bd ; 370d1 $ea
+	jr .asm_370bd
 .asm_370d3
 	call AnimateFailedMove
 	jp PrintButItFailed
-.asm_370d9
+.asm_370d9_a
+.asm_370d9_b
 	call BattleRandom
-	and $3
+	and 3 ; TODO factor in NUM_MOVES
 	ld c, a
-	ld b, $0
+	ld b, 0
 	ld hl, StringBuffer1
 	add hl, bc
 	ld a, [hl]
 	cp $ff
-	jr z, .asm_370d9 ; 370e8 $ef
-	cp $13
-	jr z, .asm_370d9 ; 370ec $eb
+	jr z, .asm_370d9_b ; 370e8 $ef
+	cp CURSE_T
+	jr z, .asm_370d9_b ; 370ec $eb
 	ld a, [de]
 	cp [hl]
-	jr z, .asm_370d9 ; 370f0 $e7
+	jr z, .asm_370d9_b ; 370f0 $e7
 	inc de
 	ld a, [de]
 	dec de
 	cp [hl]
-	jr z, .asm_370d9 ; 370f6 $e1
+	jr z, .asm_370d9_b ; 370f6 $e1
 	ld a, [hl]
 	ld [de], a
 	inc de
@@ -8727,10 +8752,10 @@
 
 .Fill
 	ld b, PlayerStatLevelsEnd - PlayerStatLevels
-.asm_37139
+.next
 	ld [hli], a
 	dec b
-	jr nz, .asm_37139
+	jr nz, .next
 	ret
 ; 3713e
 
@@ -8743,8 +8768,8 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3714f ; 37147 $6
-	ld de, EnemyMonHPHi
-	ld hl, EnemyMonMaxHPHi
+	ld de, EnemyMonHP
+	ld hl, EnemyMonMaxHP
 .asm_3714f
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
@@ -8752,7 +8777,7 @@
 	push hl
 	push de
 	push bc
-	ld c, $2
+	ld c, 2
 	call StringCmp
 	pop bc
 	pop de
@@ -8759,7 +8784,7 @@
 	pop hl
 	jp z, .asm_371c4
 	ld a, b
-	cp $9c
+	cp REST
 	jr nz, .asm_37199 ; 37166 $31
 	push hl
 	push de
@@ -8767,12 +8792,12 @@
 	call BattleCommandaa
 	ld a, BATTLE_VARS_SUBSTATUS5
 	call _GetBattleVar
-	res 0, [hl]
+	res SUBSTATUS_TOXIC, [hl]
 	ld a, BATTLE_VARS_STATUS
 	call _GetBattleVar
 	ld a, [hl]
 	and a
-	ld [hl], $3
+	ld [hl], 3
 	ld hl, WentToSleepText
 	jr z, .asm_37186 ; 37181 $3
 	ld hl, RestedText
@@ -8832,12 +8857,12 @@
 	ld [$c689], a
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	bit 4, [hl]
+	bit SUBSTATUS_SUBSTITUTE, [hl]
 	push af
 	jr z, .asm_37200 ; 371f4 $a
 	call Function34548
 	jr nz, .asm_37200 ; 371f9 $5
-	ld a, $a4
+	ld a, SUBSTITUTE
 	call Function37e44
 .asm_37200
 	ld a, BATTLE_VARS_SUBSTATUS5
@@ -8860,7 +8885,7 @@
 	inc hl
 	inc de
 	inc de
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
 	ld a, [hBattleTurn]
 	and a
@@ -8897,7 +8922,7 @@
 	pop hl
 	ld bc, $ffe8
 	add hl, bc
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_3725f
 	ld a, [de]
 	inc de
@@ -8945,7 +8970,7 @@
 	ld a, $2
 	ld [$c689], a
 	pop af
-	ld a, $a4
+	ld a, SUBSTITUTE
 	call nz, Function37e44
 	ld hl, TransformedText
 	jp StdBattleTextBox
@@ -9024,23 +9049,23 @@
 	cp EFFECT_LIGHT_SCREEN
 	jr nz, .Reflect
 
-	bit 3, [hl]
-	jr nz, .asm_37337
-	set 3, [hl]
-	ld a, $5
+	bit SCREENS_LIGHT_SCREEN, [hl]
+	jr nz, .failed
+	set SCREENS_LIGHT_SCREEN, [hl]
+	ld a, 5
 	ld [bc], a
 	ld hl, LightScreenEffectText
 	jr .asm_37331
 
 .Reflect
-	bit 4, [hl]
-	jr nz, .asm_37337
-	set 4, [hl]
+	bit SCREENS_REFLECT, [hl]
+	jr nz, .failed
+	set SCREENS_REFLECT, [hl]
 
 ; LightScreenCount -> ReflectCount
 	inc bc
 
-	ld a, $5
+	ld a, 5
 	ld [bc], a
 	ld hl, ReflectEffectText
 
@@ -9048,7 +9073,7 @@
 	call AnimateCurrentMove
 	jp StdBattleTextBox
 
-.asm_37337
+.failed
 	call AnimateFailedMove
 	jp PrintButItFailed
 ; 3733d
@@ -9121,7 +9146,7 @@
 CheckSubstituteOpp: ; 37378
 	ld a, BATTLE_VARS_SUBSTATUS4_OPP
 	call GetBattleVar
-	bit 4, a
+	bit SUBSTATUS_SUBSTITUTE, a
 	ret
 ; 37380
 
@@ -9145,10 +9170,10 @@
 	call Function37e36
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	res 7, [hl]
+	res SUBSTATUS_LEECH_SEED, [hl]
 	ld a, BATTLE_VARS_SUBSTATUS5_OPP
 	call _GetBattleVar
-	res 6, [hl]
+	res SUBSTATUS_DESTINY_BOND, [hl]
 	call Function37ed5
 	ret nc
 	callba DrawPlayerHUD
@@ -9360,17 +9385,17 @@
 ; attract
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_377f2
+	jr nz, .failed
 	call Function377f5
-	jr c, .asm_377f2
+	jr c, .failed
 	call CheckHiddenOpponent
-	jr nz, .asm_377f2
+	jr nz, .failed
 	ld a, BATTLE_VARS_SUBSTATUS1_OPP
 	call _GetBattleVar
-	bit 7, [hl]
-	jr nz, .asm_377f2
+	bit SUBSTATUS_IN_LOVE, [hl]
+	jr nz, .failed
 
-	set 7, [hl]
+	set SUBSTATUS_IN_LOVE, [hl]
 	call AnimateCurrentMove
 
 ; 'fell in love!'
@@ -9377,13 +9402,13 @@
 	ld hl, FellInLoveText
 	jp StdBattleTextBox
 
-.asm_377f2
+.failed
 	jp Function37354
 ; 377f5
 
 
 Function377f5: ; 377f5
-	ld a, 0
+	ld a, PartyMon1Species - PartyMon1
 	call BattlePartyAttr
 	ld a, [hl]
 	ld [CurPartySpecies], a
@@ -9404,7 +9429,7 @@
 	push bc
 	ld a, [TempEnemyMonSpecies]
 	ld [CurPartySpecies], a
-	ld hl, EnemyMonAtkDefDV
+	ld hl, EnemyMonDVs
 	ld a, [EnemySubStatus5]
 	bit 3, a
 	jr z, .asm_37829
@@ -9444,22 +9469,22 @@
 	ld hl, BattleMonHappiness
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_37857 ; 37852 $3
+	jr z, .ok
 	ld hl, EnemyMonHappiness
-.asm_37857
+.ok
 	xor a
-	ld [$ffb4], a
-	ld [$ffb5], a
+	ld [hMultiplicand], a
+	ld [hMultiplicand + 1], a
 	ld a, [hl]
-	ld [$ffb6], a
-	ld a, $a
-	ld [$ffb7], a
+	ld [hMultiplicand + 2], a
+	ld a, 10
+	ld [hMultiplier], a
 	call Multiply
-	ld a, $19
-	ld [$ffb7], a
-	ld b, $4
+	ld a, 25
+	ld [hDivisor], a
+	ld b, 4
 	call Divide
-	ld a, [$ffb6]
+	ld a, [hQuotient + 2]
 	ld d, a
 	pop bc
 	ret
@@ -9471,17 +9496,20 @@
 
 	ld a, [InLinkBattle]
 	cp $3
-	jr z, .asm_3787d ; 37879 $2
+	jr z, .asm_3787d
 	push bc
 	push de
 .asm_3787d
+
 	call BattleCommand07
+
 	ld a, [InLinkBattle]
 	cp $3
-	jr z, .asm_37889 ; 37885 $2
+	jr z, .asm_37889
 	pop de
 	pop bc
 .asm_37889
+
 	ld a, [$d265]
 	and a
 	jp z, AnimateFailedMove
@@ -9488,6 +9516,7 @@
 	ld a, [AttackMissed]
 	and a
 	jp nz, AnimateFailedMove
+
 	push bc
 	call BattleRandom
 	ld b, a
@@ -9502,6 +9531,7 @@
 	inc c
 	inc hl
 	jr .asm_378a1 ; 378ab $f4
+
 .asm_378ad
 	ld a, c
 	ld [$c689], a
@@ -9509,6 +9539,7 @@
 	ld d, [hl]
 	pop bc
 	ret
+
 .asm_378b7
 	pop bc
 	ld a, $3
@@ -9524,6 +9555,7 @@
 	ld a, BANK(AICheckPlayerMaxHP)
 	rst FarCall
 	jr c, .asm_378f3 ; 378d1 $20
+
 	ld hl, GetQuarterMaxHP
 	call CallBattleCore
 	call SwitchTurn
@@ -9535,6 +9567,7 @@
 	call SwitchTurn
 	call UpdateOpponentInParty
 	jr .asm_37904 ; 378f1 $11
+
 .asm_378f3
 	call SwitchTurn
 	call Function37ed5
@@ -9546,9 +9579,9 @@
 	jp EndMoveEffect
 
 .table_37907
-	db $66,  40
-	db $b3,  80
-	db $cc, 120
+	db 40 percent,     40
+	db 70 percent + 1, 80
+	db 80 percent,    120
 	db $ff
 ; 3790e
 
@@ -9569,12 +9602,12 @@
 	xor a
 	ld [$ffb4], a
 	ld [$ffb5], a
-	ld a, $a
+	ld a, 10
 	ld [$ffb7], a
 	call Multiply
-	ld a, $19
+	ld a, 25
 	ld [$ffb7], a
-	ld b, $4
+	ld b, 4
 	call Divide
 	ld a, [$ffb6]
 	ld d, a
@@ -9587,22 +9620,22 @@
 ; safeguard
 
 	ld hl, PlayerScreens
-	ld de, $c701
+	ld de, PlayerSafeguardCount
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_3794a ; 37942 $6
+	jr z, .ok
 	ld hl, EnemyScreens
-	ld de, $c705
-.asm_3794a
-	bit 2, [hl]
-	jr nz, .asm_3795c ; 3794c $e
-	set 2, [hl]
-	ld a, $5
+	ld de, EnemySafeguardCount
+.ok
+	bit SCREENS_SAFEGUARD, [hl]
+	jr nz, .failed
+	set SCREENS_SAFEGUARD, [hl]
+	ld a, 5
 	ld [de], a
 	call AnimateCurrentMove
 	ld hl, CoveredByVeilText
 	jp StdBattleTextBox
-.asm_3795c
+.failed
 	call AnimateFailedMove
 	jp PrintButItFailed
 ; 37962
@@ -9617,7 +9650,7 @@
 	ld hl, PlayerScreens
 
 .asm_3796e
-	bit 2, [hl]
+	bit SCREENS_SAFEGUARD, [hl]
 	pop hl
 	ret
 ; 37972
@@ -9631,9 +9664,9 @@
 	jr z, .asm_3797d ; 37978 $3
 	ld hl, PlayerScreens
 .asm_3797d
-	bit 2, [hl]
+	bit SCREENS_SAFEGUARD, [hl]
 	ret z
-	ld a, $1
+	ld a, 1
 	ld [AttackMissed], a
 	call BattleCommandaa
 	ld hl, SafeguardProtectText
@@ -9649,14 +9682,14 @@
 	call BattleRandom
 	ld b, a
 	ld hl, .Magnitudes
-.asm_37999
+.loop
 	ld a, [hli]
 	cp b
-	jr nc, .asm_379a1 ; 3799b $4
+	jr nc, .ok
 	inc hl
 	inc hl
-	jr .asm_37999 ; 3799f $f8
-.asm_379a1
+	jr .loop
+.ok
 	ld d, [hl]
 	push de
 	inc hl
@@ -9821,7 +9854,7 @@
 ResetBatonPassStatus: ; 37ab1
 ; Reset status changes that aren't passed by Baton Pass.
 
-; Nightmare isn't passed.
+	; Nightmare isn't passed.
 	ld a, BATTLE_VARS_STATUS
 	call GetBattleVar
 	and SLP
@@ -9832,10 +9865,10 @@
 	res SUBSTATUS_NIGHTMARE, [hl]
 .ok
 
-; Disable isn't passed.
+	; Disable isn't passed.
 	call ResetActorDisable
 
-; Attraction isn't passed.
+	; Attraction isn't passed.
 	ld hl, PlayerSubStatus1
 	res SUBSTATUS_IN_LOVE, [hl]
 	ld hl, EnemySubStatus1
@@ -9847,7 +9880,7 @@
 	res 3, [hl]
 	res 4, [hl]
 
-; New mon hasn't used a move yet.
+	; New mon hasn't used a move yet.
 	ld a, BATTLE_VARS_LAST_MOVE
 	call _GetBattleVar
 	ld [hl], 0
@@ -9944,12 +9977,13 @@
 
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call _GetBattleVar
-	bit 7, [hl]
+	bit SUBSTATUS_LEECH_SEED, [hl]
 	jr z, .asm_37b4a ; 37b40 $8
-	res 7, [hl]
+	res SUBSTATUS_LEECH_SEED, [hl]
 	ld hl, ShedLeechSeedText
 	call StdBattleTextBox
 .asm_37b4a
+
 	ld hl, PlayerScreens
 	ld de, $c730
 	ld a, [hBattleTurn]
@@ -9958,14 +9992,15 @@
 	ld hl, EnemyScreens
 	ld de, $c731
 .asm_37b5b
-	bit 0, [hl]
+	bit SCREENS_SPIKES, [hl]
 	jr z, .asm_37b69 ; 37b5d $a
-	res 0, [hl]
+	res SCREENS_SPIKES, [hl]
 	ld hl, BlewSpikesText
 	push de
 	call StdBattleTextBox
 	pop de
 .asm_37b69
+
 	ld a, [de]
 	and a
 	ret z
@@ -10130,7 +10165,7 @@
 	pop bc
 	callab Function3cc3f
 	call UpdateUserInParty
-	ld a, $5
+	ld a, 5
 
 .asm_37c41
 	push af
@@ -10137,7 +10172,7 @@
 	call BattleCommand77
 	pop af
 	dec a
-	jr nz, .asm_37c41 ; 37c47 $f8
+	jr nz, .asm_37c41
 
 	ld hl, BellyDrumText
 	jp StdBattleTextBox
@@ -10262,9 +10297,9 @@
 	ld hl, $c6fa
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_37cf1 ; 37cec $3
+	jr z, .ok
 	ld hl, $c6fe
-.asm_37cf1
+.ok
 	ld a, [hl]
 	and a
 	ret z
@@ -10358,12 +10393,12 @@
 	ld hl, CurDamage
 	ld a, [hl]
 	ld [de], a
-	ld [hl], $0
+	ld [hl], 0
 	inc hl
 	inc de
 	ld a, [hl]
 	ld [de], a
-	ld [hl], $0
+	ld [hl], 0
 	jp EndMoveEffect
 .asm_37d87
 	pop bc
@@ -10382,13 +10417,13 @@
 	inc hl
 	ld a, [Weather]
 	cp WEATHER_RAIN
-	jr z, .asm_37da7 ; 37d9f $6
+	jr z, .rain
 	cp WEATHER_SUN
 	ret nz
-	ld [hl], $80
+	ld [hl], 50 percent + 1
 	ret
-.asm_37da7
-	ld [hl], $ff
+.rain
+	ld [hl], 100 percent
 	ret
 ; 37daa
 
@@ -10396,7 +10431,7 @@
 CheckHiddenOpponent: ; 37daa
 	ld a, BATTLE_VARS_SUBSTATUS3_OPP
 	call GetBattleVar
-	and $60 ; fly | dig
+	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
 	ret
 ; 37db2
 
@@ -10674,6 +10709,4 @@
 	pop hl
 	ret
 ; 37ee2
-
-
 
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -2,10 +2,19 @@
 ; strings
 PLAYER_NAME_LENGTH EQU 8
 PKMN_NAME_LENGTH EQU 11
+MOVE_NAME_LENGTH EQU 13
 NAME_LENGTH EQU 11
 LV_CHAR EQU $6e
 
+; GetName types
+PKMN_NAME     EQU 1
+MOVE_NAME     EQU 2
+ITEM_NAME     EQU 4
+PARTY_OT_NAME EQU 5
+ENEMY_OT_NAME EQU 6
+TRAINER_NAME  EQU 7
 
+
 ; boxes
 NUM_BOXES EQU 14
 
@@ -22,6 +31,7 @@
 PREDEF_START_BATTLE EQU $16
 PREDEF_FILL_IN_EXP_BAR EQU $17
 PREDEF_FILLMOVES EQU $1B
+PREDEF_LIST_MOVES EQU $20
 PREDEF_GET_GENDER EQU $24
 PREDEF_STATS_SCREEN EQU $25
 PREDEF_DRAW_PLAYER_HP EQU $26
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -366,7 +366,7 @@
 
 .asm_e98e
 	ld b, a
-	ld [MagikarpLength], a
+	ld [Buffer1], a
 	call Random
 
 	cp b
@@ -478,13 +478,13 @@
 	bit 3, [hl]
 	jr nz, .asm_ea67
 	ld hl, $c735
-	ld de, EnemyMonMove1
-	ld bc, $0004
+	ld de, EnemyMonMoves
+	ld bc, NUM_MOVES
 	call CopyBytes
 
 	ld hl, $c739
-	ld de, EnemyMonPPMove1
-	ld bc, $0004
+	ld de, EnemyMonPP
+	ld bc, NUM_MOVES
 	call CopyBytes
 
 .asm_ea67
@@ -2633,11 +2633,11 @@
 
 .asm_f677
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Move1
-	ld bc, $0030
+	ld hl, PartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld de, BattleMonMove1
-	ld b, $4
+	ld de, BattleMonMoves
+	ld b, NUM_MOVES
 .asm_f688
 	ld a, [de]
 	and a
@@ -2647,13 +2647,10 @@
 	push hl
 	push de
 	push bc
+	rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
 	inc de
-	inc de
-	inc de
-	inc de
-	inc de
-	inc de
-	ld bc, $0015
+	endr
+	ld bc, PartyMon1PP - PartyMon1Moves
 	add hl, bc
 	ld a, [hl]
 	ld [de], a
@@ -2682,15 +2679,16 @@
 	ld hl, $cfa9
 	ld [hli], a
 	ld [hl], a
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_f6b7
 	push bc
-	ld hl, PartyMon1Move1
-	ld bc, $0030
+	ld hl, PartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	call Functionf963
 	ld a, [hl]
 	and a
 	jr z, .asm_f6ce
+
 	call Functionf6e8
 	jr z, .asm_f6ce
 	ld hl, $cfaa
@@ -2721,7 +2719,7 @@
 	ld [MonType], a
 	call Functionf8ec
 	ld hl, PartyMon1PP
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call Functionf963
 	ld a, [$d265]
 	ld b, a
@@ -2739,6 +2737,7 @@
 	ld c, 5
 	cp MYSTERYBERRY
 	jr z, .asm_f715
+
 	ld c, 10
 
 .asm_f715
@@ -2985,7 +2984,7 @@
 	ld hl, WontHaveAnyEffectText
 	call PrintText
 
-; Item wasn't used.
+	; Item wasn't used.
 	ld a, $2
 	ld [$d0ec], a
 	ret
@@ -3000,7 +2999,7 @@
 	ld hl, Ball_BoxIsFullText
 	call PrintText
 
-; Item wasn't used.
+	; Item wasn't used.
 	ld a, $2
 	ld [$d0ec], a
 	ret
@@ -3116,21 +3115,21 @@
 
 
 Functionf84c: ; f84c
-	ld a, $2
+	ld a, PartyMon1Moves - PartyMon1
 	call GetPartyParamLocation
 	push hl
-	ld de, MagikarpLength
-	ld a, $5
+	ld de, Buffer1
+	ld a, PREDEF_FILLPP
 	call Predef
 	pop hl
-	ld bc, $0015
+	ld bc, PartyMon1PP - PartyMon1Moves
 	add hl, bc
-	ld de, MagikarpLength
-	ld b, $0
+	ld de, Buffer1
+	ld b, 0
 .asm_f864
 	inc b
 	ld a, b
-	cp $5
+	cp NUM_MOVES + 1
 	ret z
 	ld a, [$d265]
 	dec a
@@ -3157,14 +3156,14 @@
 Functionf881: ; f881
 	push bc
 	ld a, [de]
-	ld [$ffb6], a
+	ld [hDividend + 3], a
 	xor a
-	ld [hProduct], a
-	ld [hMultiplicand], a
-	ld [$ffb5], a
-	ld a, $5
-	ld [hMultiplier], a
-	ld b, $4
+	ld [hDividend], a
+	ld [hDividend + 1], a
+	ld [hDividend + 2], a
+	ld a, 5
+	ld [hDivisor], a
+	ld b, 4
 	call Divide
 	ld a, [hl]
 	ld b, a
@@ -3197,16 +3196,16 @@
 ; f8b9
 
 Functionf8b9: ; f8b9
-	ld a, $17
+	ld a, PartyMon1PP - PartyMon1
 	call GetPartyParamLocation
 	push hl
-	ld a, $2
+	ld a, PartyMon1Moves - PartyMon1
 	call GetPartyParamLocation
 	pop de
 	xor a
 	ld [$cfa9], a
 	ld [MonType], a
-	ld c, $4
+	ld c, NUM_MOVES
 .asm_f8ce
 	ld a, [hli]
 	and a
@@ -3265,10 +3264,10 @@
 	ld a, [hl]
 	dec a
 	push hl
-	ld hl, $5b00
-	ld bc, $0007
+	ld hl, Moves + MOVE_PP
+	ld bc, MOVE_LENGTH
 	call AddNTimes
-	ld a, $10
+	ld a, BANK(Moves)
 	call GetFarByte
 	ld b, a
 	ld de, StringBuffer1
@@ -3275,11 +3274,11 @@
 	ld [de], a
 	pop hl
 	push bc
-	ld bc, $0015
+	ld bc, PartyMon1PP - PartyMon1Moves
 	ld a, [MonType]
 	cp WILDMON
 	jr nz, .asm_f942
-	ld bc, $0006
+	ld bc, EnemyMonPP - EnemyMonMoves
 
 .asm_f942
 	add hl, bc
@@ -3310,7 +3309,7 @@
 Functionf969: ; f969
 	ld a, [$cfa9]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ret
 ; f971
--- a/main.asm
+++ b/main.asm
@@ -5266,13 +5266,13 @@
 	call CopyBytes
 
 Function6520: ; 6520
-	ld hl, PartyMon1Move1
-	ld bc, $0030
+	ld hl, PartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld d, h
 	ld e, l
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_6530
 	ld a, [hl]
 	and a
@@ -5284,9 +5284,11 @@
 	call Function65d3
 	pop de
 	jp c, Function65b5
+
 	push hl
 	push de
 	ld [$d265], a
+
 	ld b, a
 	ld a, [IsInBattle]
 	and a
@@ -5297,8 +5299,8 @@
 	xor a
 	ld [DisabledMove], a
 	ld [PlayerDisableCount], a
-
 .asm_6559
+
 	call GetMoveName
 	ld hl, UnknownText_0x6684
 	call PrintText
@@ -5334,13 +5336,13 @@
 	jp nz, Function65ca
 	ld h, d
 	ld l, e
-	ld de, BattleMonMove1
-	ld bc, $0004
+	ld de, BattleMonMoves
+	ld bc, NUM_MOVES
 	call CopyBytes
-	ld bc, $0011
+	ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES)
 	add hl, bc
-	ld de, BattleMonPPMove1
-	ld bc, $0004
+	ld de, BattleMonPP
+	ld bc, NUM_MOVES
 	call CopyBytes
 	jp Function65ca
 ; 65b5
@@ -5370,11 +5372,11 @@
 	call YesNoBox
 	pop hl
 	ret c
-	ld bc, $fffc
+	ld bc, -NUM_MOVES
 	add hl, bc
 	push hl
 	ld de, $d25e
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
 	pop hl
 .asm_65ee
@@ -5382,13 +5384,13 @@
 	ld hl, UnknownText_0x6670
 	call PrintText
 	hlcoord 5, 2
-	ld b, $8
-	ld c, $d
+	ld b, NUM_MOVES * 2
+	ld c, MOVE_NAME_LENGTH
 	call TextBox
-	hlcoord 7, 4
-	ld a, $28
+	hlcoord 5 + 2, 2 + 2
+	ld a, SCREEN_WIDTH * 2
 	ld [Buffer1], a
-	ld a, $20
+	ld a, PREDEF_LIST_MOVES
 	call Predef
 	ld a, $4
 	ld [$cfa1], a
@@ -5420,7 +5422,7 @@
 	ld a, [$cfa9]
 	dec a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	push af
@@ -5474,9 +5476,6 @@
 UnknownText_0x6684: ; 6684
 	text_jump UnknownText_0x1c5740
 	start_asm
-; 6689
-
-; 6689
 	push de
 	ld de, SFX_SWITCH_POKEMON
 	call PlaySFX
@@ -7790,7 +7789,7 @@
 	dwb Function28f63, BANK(Function28f63)
 	dwb Function28f24, BANK(Function28f24)
 	dwb Function5084a, BANK(Function5084a)
-	dwb Function50d6f, BANK(Function50d6f) ; $20
+	dwb ListMoves, BANK(ListMoves) ; $20
 	dwb Function50d2e, BANK(Function50d2e)
 	dwb Function50cdb, BANK(Function50cdb)
 	dwb Function50c50, BANK(Function50c50)
@@ -12379,7 +12378,7 @@
 .asm_d8fd
 	ld a, [$ffae]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 Functiond906: ; d906
 	ld e, l
@@ -12409,25 +12408,21 @@
 	ld a, [MonType]
 	and a
 	jr nz, .asm_d943
-	ld de, EnemyMonMove1
+	ld de, EnemyMonMoves
+	rept NUM_MOVES + -1
 	ld a, [de]
 	inc de
 	ld [hli], a
+	endr
 	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, [de]
 	ld [hl], a
 	jr .asm_d950
 
 .asm_d943
 	xor a
+	rept NUM_MOVES + -1
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+	endr
 	ld [hl], a
 	ld [Buffer1], a
 	ld a, $1b
@@ -12553,9 +12548,10 @@
 	ld a, [EnemyMonSpdSpclDV]
 	ld [de], a
 	inc de
+
 	push hl
-	ld hl, EnemyMonPPMove1
-	ld b, $4
+	ld hl, EnemyMonPP
+	ld b, NUM_MOVES
 .asm_da03
 	ld a, [hli]
 	ld [de], a
@@ -12563,7 +12559,8 @@
 	dec b
 	jr nz, .asm_da03
 	pop hl
-	ld a, $46
+
+	ld a, BASE_HAPPINESS
 	ld [de], a
 	inc de
 	xor a
@@ -12617,7 +12614,7 @@
 	ld hl, PartyMon1DVs
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, $2d
 	call Predef
@@ -12676,7 +12673,7 @@
 	ld hl, PartyMon1Species
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld e, l
 	ld d, h
@@ -12713,9 +12710,9 @@
 	ld hl, PartyMon1Happiness
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld [hl], $46
+	ld [hl], BASE_HAPPINESS
 
 .asm_db12
 	ld a, [CurPartySpecies]
@@ -12724,7 +12721,7 @@
 	ld hl, PartyMon1DVs
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, $2d
 	call Predef
@@ -12781,7 +12778,7 @@
 	ld a, [$d10b]
 	dec a
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld a, [PartyCount]
 	jr nz, .asm_db97
 	ld hl, BoxMon1Species
@@ -12805,7 +12802,7 @@
 	ld hl, BreedMon1Species
 	jr z, .asm_dbbd
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 
 .asm_dbb7
 	ld a, [CurPartyMon]
@@ -12996,7 +12993,7 @@
 	ld a, [hli]
 	and a
 	jr z, .asm_dd18
-	ld [TempMonMove1], a
+	ld [TempMonMoves+0], a
 	ld a, BOXMON
 	ld [MonType], a
 	ld a, b
@@ -13128,10 +13125,10 @@
 	push bc
 	ld b, $1
 	call Functione167
-	ld hl, PartyMon1Move1
+	ld hl, PartyMon1Moves
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -13163,7 +13160,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -13197,7 +13194,7 @@
 	call CopyBytes
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld bc, $0020
 	jp CopyBytes
@@ -13303,7 +13300,7 @@
 
 .asm_df20
 	ld hl, BoxMon1Moves
-	ld de, TempMonMove1
+	ld de, TempMonMoves
 	ld bc, NUM_MOVES
 	call CopyBytes
 	ld hl, BoxMon1PP
@@ -13417,7 +13414,7 @@
 	ld [CurPartySpecies], a
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld hl, PartyMon1Species
 	call AddNTimes
 	ld a, [CurPartySpecies]
@@ -13438,7 +13435,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1Happiness
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, [$c2cc]
 	bit 1, a
@@ -13451,7 +13448,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1HP
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	xor a
 	ld [hli], a
@@ -13875,7 +13872,7 @@
 	jr z, .asm_e2e1
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Item
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, [CurItem]
 	ld [hl], a
@@ -13958,7 +13955,7 @@
 	push bc
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1ID
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, $3
 	ld [hli], a
@@ -14261,7 +14258,7 @@
 
 Functione538: ; e538
 	ld hl, PartyMon1HP
-	ld de, $0030
+	ld de, PartyMon2 - PartyMon1
 	ld b, $0
 .asm_e540
 	ld a, [CurPartyMon]
@@ -14539,7 +14536,7 @@
 	ld [CurPartySpecies], a
 	call GetBaseData
 	xor a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld hl, $df9c
 	call ByteFill
 	xor a
@@ -20670,8 +20667,8 @@
 	jp .asm_13018
 
 .asm_130de
-	ld hl, PartyMon1Move1
-	ld bc, $0030
+	ld hl, PartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	ld a, [CurPartyMon]
 	call AddNTimes
 	push hl
@@ -20682,7 +20679,7 @@
 	call Function1313a
 	ld a, [IsInBattle]
 	jr z, .asm_13113
-	ld hl, BattleMonMove1
+	ld hl, BattleMonMoves
 	ld bc, $0020
 	ld a, [CurPartyMon]
 	call AddNTimes
@@ -20804,14 +20801,14 @@
 	ld [MonType], a
 	ld a, $1f
 	call Predef
-	ld hl, TempMonMove1
+	ld hl, TempMonMoves
 	ld de, $d25e
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
-	ld a, $28
+	ld a, SCREEN_WIDTH * 2
 	ld [Buffer1], a
 	hlcoord 2, 3
-	ld a, $20
+	ld a, PREDEF_LIST_MOVES
 	call Predef
 	hlcoord 10, 4
 	ld a, $23
@@ -20822,14 +20819,14 @@
 	inc a
 	ld [$cfa3], a
 	hlcoord 0, 11
-	ld b, $5
-	ld c, $12
+	ld b, 5
+	ld c, 18
 	jp TextBox
 ; 13235
 
 Function13235: ; 13235
-	ld hl, PartyMon1Move1
-	ld bc, $0030
+	ld hl, PartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld a, [$cfa9]
@@ -20840,7 +20837,7 @@
 	ld a, [hl]
 	ld [CurSpecies], a
 	hlcoord 1, 12
-	ld bc, $0512
+	lb bc, 5, 18
 	jp ClearBox
 ; 13256
 
@@ -28827,7 +28824,7 @@
 	callba Functione538
 	jr c, .asm_167e9
 	ld hl, PartyMon1Item
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld d, [hl]
@@ -29231,17 +29228,17 @@
 	call Function16a31
 	ld hl, EggOT
 	call CopyBytes
-	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld hl, PartyMon1
+	ld bc, PartyMon2 - PartyMon1
 	call Function16a31
-	ld hl, EggSpecies
+	ld hl, EggMon
 	ld bc, $0020
 	call CopyBytes
 	call GetBaseData
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld hl, PartyMon1
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld b, h
 	ld c, l
@@ -36944,7 +36941,7 @@
 .asm_284db
 	push bc
 	call Function284f6
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 	dec c
@@ -38183,7 +38180,7 @@
 	ld a, c
 	call GetPartyLocation
 	ld de, TempMonSpecies
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 	ld a, $7
 	call Predef
@@ -39873,15 +39870,16 @@
 	pop bc
 	pop hl
 	jr c, .asm_29c5e
-	ld de, $0030
+	ld de, PartyMon2 - PartyMon1
 	add hl, de
 	dec b
 	jr nz, .asm_29c13
-	ld hl, PartyMon1Move1
+
+	ld hl, PartyMon1Moves
 	ld a, [PartyCount]
 	ld b, a
 .asm_29c2e
-	ld c, $4
+	ld c, NUM_MOVES
 .asm_29c30
 	ld a, [hli]
 	cp STRUGGLE + 1
@@ -39888,7 +39886,7 @@
 	jr nc, .asm_29c4c
 	dec c
 	jr nz, .asm_29c30
-	ld de, $002c
+	ld de, PartyMon2 - (PartyMon1 + NUM_MOVES)
 	add hl, de
 	dec b
 	jr nz, .asm_29c2e
@@ -42153,11 +42151,11 @@
 	callba Function50000
 	jr c, .asm_2c5c3
 	ld a, [CurPartySpecies]
-	cp $fd
+	cp EGG
 	jr z, .asm_2c5bc
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Move2
-	ld bc, $0030
+	ld hl, PartyMon1Moves + 1
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, [hl]
 	and a
@@ -42258,11 +42256,11 @@
 	push bc
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, PartyMon1Move1
+	ld b, 0
+	ld hl, PartyMon1Moves
 	add hl, bc
 	ld a, [CurPartyMon]
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	pop bc
 	push bc
@@ -42269,7 +42267,7 @@
 	inc b
 .asm_2c60f
 	ld a, b
-	cp $5
+	cp NUM_MOVES + 1
 	jr z, .asm_2c61b
 	inc hl
 	ld a, [hld]
@@ -42282,21 +42280,22 @@
 	xor a
 	ld [hl], a
 	pop bc
+
 	ld a, b
 	push bc
 	dec a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	ld hl, PartyMon1PP
 	add hl, bc
 	ld a, [CurPartyMon]
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	pop bc
 	inc b
 .asm_2c633
 	ld a, b
-	cp $5
+	cp NUM_MOVES + 1
 	jr z, .asm_2c63f
 	inc hl
 	ld a, [hld]
@@ -43108,7 +43107,7 @@
 	ld hl, PartyMon1PokerusStatus
 	ld a, [PartyCount]
 	ld b, a
-	ld de, $0030
+	ld de, PartyMon2 - PartyMon1
 .loopMons
 	ld a, [hl]
 	and $f
@@ -43757,7 +43756,7 @@
 	ld d, a
 	ld e, $0
 	ld hl, OTPartyMon1Level
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 .asm_3817c
 	ld a, [hl]
 	cp e
@@ -44200,7 +44199,7 @@
 
 .asm_3845b
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	pop bc
 	dec c
@@ -44224,7 +44223,7 @@
 	push af
 	ld a, [CurOTMon]
 	ld hl, OTPartyMon1Status
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -44269,7 +44268,7 @@
 Function384e0: ; 384e0
 	ld a, [CurOTMon]
 	ld hl, OTPartyMon1Status
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	xor a
 	ld [hl], a
@@ -44569,7 +44568,7 @@
 	ld [CurPartyLevel], a
 	ld a, [hli]
 	ld [CurPartySpecies], a
-	ld a, $1
+	ld a, OTPARTYMON
 	ld [MonType], a
 	push hl
 	ld a, $6
@@ -44576,13 +44575,13 @@
 	call Predef
 	ld a, [OTPartyCount]
 	dec a
-	ld hl, OTPartyMon1Move1
-	ld bc, $0030
+	ld hl, OTPartyMon1Moves
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
 	pop hl
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_39830
 	ld a, [hli]
 	ld [de], a
@@ -44593,7 +44592,7 @@
 	ld a, [OTPartyCount]
 	dec a
 	ld hl, OTPartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -44674,7 +44673,7 @@
 	ld a, [OTPartyCount]
 	dec a
 	ld hl, $d289
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -44685,7 +44684,7 @@
 	ld a, [OTPartyCount]
 	dec a
 	ld hl, $d28a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -44701,7 +44700,7 @@
 	ld a, [OTPartyCount]
 	dec a
 	ld hl, OTPartyMon1
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -47652,8 +47651,8 @@
 	jp z, .asm_423f8
 
 	push hl
-	ld de, TempMonAtk
-	ld hl, TempMonDef
+	ld de, TempMonAttack
+	ld hl, TempMonDefense
 	ld c, 2
 	call StringCmp
 	ld a, ATK_EQ_DEF
@@ -47850,7 +47849,7 @@
 	ld [hl], a
 
 	ld hl, TempMonSpecies
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 
 	ld a, [CurSpecies]
@@ -48014,11 +48013,11 @@
 	jr nz, .asm_4249d
 	push hl
 	ld d, a
-	ld hl, PartyMon1Move1
+	ld hl, PartyMon1Moves
 	ld a, [CurPartyMon]
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld b, $4
+	ld b, NUM_MOVES
 .asm_424b9
 	ld a, [hli]
 	cp d
@@ -48121,7 +48120,7 @@
 	and a
 	jr z, .ShiftedMove
 	push de
-	ld bc, PartyMon1PP - PartyMon1Move4
+	ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
 	add hl, bc
 	ld d, h
 	ld e, l
@@ -48161,7 +48160,7 @@
 ; 4256e
 
 ShiftMoves: ; 4256e
-	ld c, $3
+	ld c, NUM_MOVES - 1
 .asm_42570
 	inc de
 	ld a, [de]
@@ -48268,7 +48267,7 @@
 	and a
 	jr z, .CheckPP
 
-	ld hl, EnemyMonMove1
+	ld hl, EnemyMonMoves
 	ld c, 0
 .CheckDisabledMove
 	cp [hl]
@@ -48380,12 +48379,12 @@
 	inc [hl]
 	dec hl
 	inc a
-	cp EnemyMonMovesEnd - EnemyMonMoves + 1
+	cp NUM_MOVES + 1
 	jr nz, .asm_44175
 
 	ld hl, Buffer1
 	ld de, EnemyMonMoves
-	ld c, EnemyMonMovesEnd - EnemyMonMoves
+	ld c, NUM_MOVES
 .asm_44184
 	ld a, [de]
 	and a
@@ -48447,14 +48446,16 @@
 Function441cf: ; 441cf
 	ld hl, Unknown_441fc
 	ld b, 25
-.asm_441d4
+.loop
 	ld a, [hli]
+
+	; Wrap around
 	cp $fe
-	jr nz, .asm_441dd
+	jr nz, .ok
 	ld hl, Unknown_441fc
 	ld a, [hli]
+.ok
 
-.asm_441dd
 	ld [$c7db], a
 	ld a, [hli]
 	ld c, a
@@ -48465,7 +48466,7 @@
 	pop bc
 	call DelayFrames
 	dec b
-	jr nz, .asm_441d4
+	jr nz, .loop
 	xor a
 	ld [$c7db], a
 	call Function44207
@@ -48475,11 +48476,11 @@
 ; 441fc
 
 Unknown_441fc: ; 441fc
-	db $00, $07
-	db $01, $07
-	db $02, $07
-	db $03, $07
-	db $04, $07
+	db 0, 7
+	db 1, 7
+	db 2, 7
+	db 3, 7
+	db 4, 7
 	db $fe
 ; 44207
 
@@ -48865,7 +48866,7 @@
 	jr c, .asm_446c6
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Item
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, [hl]
 	callba ItemIsMail
@@ -48928,7 +48929,7 @@
 	push af
 	push bc
 	ld hl, PartyMon1Item
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	pop bc
 	ld [hl], b
@@ -48954,7 +48955,7 @@
 	call CopyBytes
 	pop af
 	ld hl, PartyMon1ID
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld a, [hli]
 	ld [de], a
@@ -49029,7 +49030,7 @@
 	pop de
 	pop hl
 	ret c
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	dec e
 	jr nz, .asm_4478b
@@ -55796,7 +55797,7 @@
 	dec a
 	ld [CurPartyMon], a
 	call LowVolume
-	ld a, $25
+	ld a, PREDEF_STATS_SCREEN
 	call Predef
 	ld a, [CurPartyMon]
 	inc a
@@ -56615,12 +56616,12 @@
 	ld hl, PartyMon1Species
 	ld a, [PartyCount]
 	dec a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld d, h
 	ld e, l
 	ld hl, $df9c
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 	ld a, [PartyCount]
 	dec a
@@ -56902,7 +56903,7 @@
 	dec a
 	push hl
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	pop bc
 	ld a, b
@@ -56935,7 +56936,7 @@
 	dec a
 	push hl
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	pop bc
 	ld a, b
@@ -57702,18 +57703,18 @@
 	ld de, String_4e1a9
 	hlcoord 0, 10
 	call PlaceString
-	ld hl, TempMonMoves ; $d110 (aliases: TempMonMove1)
+	ld hl, TempMonMoves
 	ld de, $d25e
-	ld bc, $4
+	ld bc, NUM_MOVES
 	call CopyBytes
 	hlcoord 8, 10
-	ld a, $28
-	ld [Buffer1], a ; $d1ea (aliases: MagikarpLength)
-	ld a, $20
+	ld a, SCREEN_WIDTH * 2
+	ld [Buffer1], a
+	ld a, PREDEF_LIST_MOVES
 	call Predef
 	hlcoord 12, 11
 	ld a, $28
-	ld [Buffer1], a ; $d1ea (aliases: MagikarpLength)
+	ld [Buffer1], a
 	ld a, $23
 	call Predef
 	ret
@@ -59194,7 +59195,7 @@
 
 Function50117: ; 50117
 	ld a, b
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld hl, PartyMon1HP
 	call AddNTimes
 	ld a, [hli]
@@ -59234,7 +59235,7 @@
 	jr z, .asm_5016b
 	push hl
 	ld a, b
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld hl, PartyMon1HP
 	call AddNTimes
 	ld e, l
@@ -59407,7 +59408,7 @@
 	jr z, .asm_5025d
 	push hl
 	ld a, b
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld hl, PartyMon1Species
 	call AddNTimes
 	ld a, [hl]
@@ -60415,7 +60416,7 @@
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld de, TempMonSpecies
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 
 .asm_5088a
@@ -60739,16 +60740,16 @@
 	add hl, bc
 	ld bc, $0014
 	add hl, bc
-	ld de, TempMonAtk
+	ld de, TempMonAttack
 	ld bc, $0203
 	call Function50bab
-	ld de, TempMonDef
+	ld de, TempMonDefense
 	call Function50bab
 	ld de, TempMonSpclAtk
 	call Function50bab
 	ld de, TempMonSpclDef
 	call Function50bab
-	ld de, TempMonSpd
+	ld de, TempMonSpeed
 	jp PrintNum
 ; 50bab
 
@@ -60916,8 +60917,8 @@
 	inc hl
 	ld d, h
 	ld e, l
-	ld hl, TempMonMove1
-	ld b, $0
+	ld hl, TempMonMoves
+	ld b, 0
 .asm_50c7a
 	ld a, [hli]
 	and a
@@ -60937,7 +60938,7 @@
 	pop de
 	pop hl
 	push hl
-	ld bc, $0014
+	ld bc, TempMonPP - (TempMonMoves + 1)
 	add hl, bc
 	ld a, [hl]
 	and $3f
@@ -60956,7 +60957,7 @@
 	pop hl
 	ld a, [Buffer1]
 	ld e, a
-	ld d, $0
+	ld d, 0
 	add hl, de
 	ld d, h
 	ld e, l
@@ -60964,7 +60965,7 @@
 	pop bc
 	inc b
 	ld a, b
-	cp $4
+	cp NUM_MOVES
 	jr nz, .asm_50c7a
 
 .asm_50cc8
@@ -61095,7 +61096,8 @@
 ParString: db "PAR@"
 ; 50d6f
 
-Function50d6f: ; 50d6f
+ListMoves: ; 50d6f
+; List moves at hl, spaced every [Buffer1] tiles.
 	ld de, $d25e
 	ld b, $0
 .asm_50d74
@@ -61107,7 +61109,7 @@
 	push hl
 	push hl
 	ld [CurSpecies], a
-	ld a, $2
+	ld a, MOVE_NAME
 	ld [$cf61], a
 	call GetName
 	ld de, StringBuffer1
@@ -61122,12 +61124,12 @@
 	push bc
 	ld a, [Buffer1]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	pop bc
 	pop de
 	ld a, b
-	cp $4
+	cp NUM_MOVES
 	jr z, .asm_50db8
 	jr .asm_50d74
 
@@ -61135,14 +61137,14 @@
 	ld a, b
 .asm_50da8
 	push af
-	ld [hl], $e3
+	ld [hl], "-"
 	ld a, [Buffer1]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	pop af
 	inc a
-	cp $4
+	cp NUM_MOVES
 	jr nz, .asm_50da8
 
 .asm_50db8
@@ -61151,41 +61153,42 @@
 
 Function50db9: ; 50db9
 	ld a, [$d263]
+
 	cp $1
 	jr nz, .asm_50dca
 	ld hl, OTPartyCount
 	ld de, OTPartyMon1OT
-	ld a, $6
+	ld a, ENEMY_OT_NAME
 	jr .asm_50dfc
-
 .asm_50dca
+
 	cp $4
 	jr nz, .asm_50dd8
 	ld hl, PartyCount
 	ld de, PartyMon1OT
-	ld a, $5
+	ld a, PARTY_OT_NAME
 	jr .asm_50dfc
-
 .asm_50dd8
+
 	cp $5
 	jr nz, .asm_50de6
 	ld hl, $d0f0
 	ld de, PokemonNames
-	ld a, $1
+	ld a, PKMN_NAME
 	jr .asm_50dfc
-
 .asm_50de6
+
 	cp $2
 	jr nz, .asm_50df4
 	ld hl, NumItems
-	ld de, Function50000
-	ld a, $4
+	ld de, ItemNames
+	ld a, ITEM_NAME
 	jr .asm_50dfc
-
 .asm_50df4
+
 	ld hl, $d0f0
-	ld de, Function50000
-	ld a, $4
+	ld de, ItemNames
+	ld a, ITEM_NAME
 
 .asm_50dfc
 	ld [$cf61], a
@@ -61197,7 +61200,7 @@
 	ld [$d102], a
 	ld a, d
 	ld [$d103], a
-	ld bc, $67c1
+	ld bc, $67c1 ; XXX ItemAttributes?
 	ld a, c
 	ld [$d104], a
 	ld a, b
@@ -62047,12 +62050,12 @@
 	ld de, $d018
 	call Function513e0
 	ld hl, $d01a
-	ld de, TempMonMove1
-	ld bc, $0004
+	ld de, TempMonMoves
+	ld bc, NUM_MOVES
 	call CopyBytes
 	ld hl, $d02f
 	ld de, TempMonPP
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
 	ld a, [CurPartyMon]
 	ld b, a
@@ -62081,7 +62084,7 @@
 	dec a
 	ld [$d265], a
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld de, $d018
 	call Function513e0
 	ret
@@ -66509,7 +66512,7 @@
 	push bc
 	ld a, c
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld c, l
 	ld b, h
@@ -73161,7 +73164,7 @@
 
 Function8b31a: ; 8b31a
 	push bc
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
 	inc de
 	pop bc
@@ -96856,7 +96859,7 @@
 	ld hl, PartyMon1OT
 	call Functione3376
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call Functione3389
 	xor a
 	ld [$d10b], a
@@ -101146,7 +101149,7 @@
 	jr nz, .asm_fbba4
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	push hl
 	ld bc, $0015
@@ -103997,8 +104000,8 @@
 	ld a, [$cfa9]
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, BattleMonPPMove1
+	ld b, 0
+	ld hl, BattleMonPP
 	add hl, bc
 	ld a, [hl]
 	and $3f
@@ -104012,8 +104015,8 @@
 	ld a, [$cfa9]
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, BattleMonMove1
+	ld b, 0
+	ld hl, BattleMonMoves
 	add hl, bc
 	ld a, [hl]
 	ld [CurPlayerMove], a
@@ -104035,23 +104038,23 @@
 
 Function100c74: ; 100c74
 	hlcoord 0, 8
-	ld b, $8
-	ld c, $8
+	ld b, 8
+	ld c, 8
 	call TextBox
-	ld hl, BattleMonMove1
+	ld hl, BattleMonMoves
 	ld de, $d25e
-	ld bc, $0004
+	ld bc, NUM_MOVES
 	call CopyBytes
-	ld a, $28
+	ld a, SCREEN_WIDTH * 2
 	ld [Buffer1], a
 	hlcoord 2, 10
-	ld a, $20
+	ld a, PREDEF_LIST_MOVES
 	call Predef
 	ret
 ; 100c98
 
 Function100c98: ; 100c98
-	ld de, $4cad
+	ld de, Unknown_100cad
 	call Function1bb1
 	ld a, [$d0eb]
 	inc a
@@ -104062,6 +104065,7 @@
 	ret
 ; 100cad
 
+Unknown_100cad: ; 100cad
 INCBIN "baserom.gbc",$100cad,$100cb5 - $100cad
 
 
@@ -112882,7 +112886,7 @@
 	ld a, $ff
 	ld [bc], a
 	ld hl, PartyMon1Species
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	ld a, e
 	ld [$cd2a], a
 .asm_11b9ba
@@ -112896,7 +112900,7 @@
 	ld l, a
 	ld a, [$cd23]
 	ld h, a
-	ld bc, $0030
+	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 	ld hl, PartyMon1OT
 	ld bc, $000b
@@ -119488,7 +119492,7 @@
 	ld de, String1dc554
 	call PlaceString
 	hlcoord 7, 14
-	ld a, [TempMonMove1]
+	ld a, [TempMonMoves + 0]
 	call Function1dc51a
 	call Function1dc52c
 	ld hl, TempMonDVs
@@ -119498,7 +119502,7 @@
 	xor a
 	ld [hl], a
 	ld a, [CurPartySpecies]
-	cp $c9
+	cp UNOWN
 	jr z, .asm_1dc469
 	inc [hl]
 
@@ -119531,22 +119535,22 @@
 	hlcoord 0, 1
 	call CopyBytes
 	hlcoord 7, 0
-	ld a, [TempMonMove2]
+	ld a, [TempMonMoves + 1]
 	call Function1dc51a
 	hlcoord 7, 2
-	ld a, [TempMonMove3]
+	ld a, [TempMonMoves + 2]
 	call Function1dc51a
 	hlcoord 7, 4
-	ld a, [TempMonMove4]
+	ld a, [TempMonMoves + 3]
 	call Function1dc51a
 	hlcoord 7, 7
 	ld de, String1dc55d
 	call PlaceString
 	hlcoord 16, 7
-	ld de, TempMonAtk
+	ld de, TempMonAttack
 	call Function1dc507
 	hlcoord 16, 9
-	ld de, TempMonDef
+	ld de, TempMonDefense
 	call Function1dc507
 	hlcoord 16, 11
 	ld de, TempMonSpclAtk
@@ -119555,7 +119559,7 @@
 	ld de, TempMonSpclDef
 	call Function1dc507
 	hlcoord 16, 15
-	ld de, TempMonSpd
+	ld de, TempMonSpeed
 	call Function1dc507
 	call WaitBGMap
 	ld b, $3
--- a/wram.asm
+++ b/wram.asm
@@ -6,11 +6,7 @@
 \1Species::  db
 \1Item::     db
 
-\1Moves::
-\1Move1::    db
-\1Move2::    db
-\1Move3::    db
-\1Move4::    db
+\1Moves::    ds NUM_MOVES
 
 \1ID::       dw
 \1Exp::      ds 3 ; Big endian
@@ -25,11 +21,7 @@
 \1AtkDefDV:: db
 \1SpdSpcDV:: db
 
-\1PP::
-\1PPMove1::  db
-\1PPMove2::  db
-\1PPMove3::  db
-\1PPMove4::  db
+\1PP::       ds NUM_MOVES
 
 \1Happiness::     db
 \1PokerusStatus:: db
@@ -483,15 +475,8 @@
 BattleMonItem:: ; c62d
 	ds 1
 
-BattleMonMoves::
-BattleMonMove1:: ; c62e
-	ds 1
-BattleMonMove2:: ; c62f
-	ds 1
-BattleMonMove3:: ; c630
-	ds 1
-BattleMonMove4:: ; c631
-	ds 1
+BattleMonMoves:: ; c62e
+	ds NUM_MOVES
 
 BattleMonDVs::
 BattleMonAtkDefDV:: ; c632
@@ -499,15 +484,8 @@
 BattleMonSpdSpclDV:: ; c633
 	ds 1
 
-BattleMonPP::
-BattleMonPPMove1:: ; c634
-	ds 1
-BattleMonPPMove2:: ; c635
-	ds 1
-BattleMonPPMove3:: ; c636
-	ds 1
-BattleMonPPMove4:: ; c637
-	ds 1
+BattleMonPP:: ; c634
+	ds NUM_MOVES
 
 BattleMonHappiness:: ; c638
 	ds 1
@@ -736,8 +714,15 @@
 PlayerTurnsTaken:: ; c6dd
 	ds 1
 
-	ds 5
+	ds 1
 
+PlayerSubstituteHP:: ; c6df
+	ds 1
+EnemySubstituteHP:: ; c6e0
+	ds 1
+
+	ds 2
+
 CurPlayerMove:: ; c6e3
 	ds 1
 CurEnemyMove:: ; c6e4
@@ -788,15 +773,17 @@
 ; see PlayerScreens
 	ds 1
 
+PlayerSafeguardCount:: ; c701
 	ds 1
-
 PlayerLightScreenCount:: ; c702
 	ds 1
 PlayerReflectCount:: ; c703
 	ds 1
 
-	ds 2
+	ds 1
 
+EnemySafeguardCount:: ; c705
+	ds 1
 EnemyLightScreenCount:: ; c706
 	ds 1
 EnemyReflectCount:: ; c707
@@ -1083,70 +1070,7 @@
 	ds 4
 
 TempMon::
-TempMonSpecies:: ; d10e
-	ds 1
-TempMonItem:: ; d10f
-	ds 1
-TempMonMoves:: ; d110
-TempMonMove1:: ; d110
-	ds 1
-TempMonMove2:: ; d111
-	ds 1
-TempMonMove3:: ; d112
-	ds 1
-TempMonMove4:: ; d113
-	ds 1
-TempMonID:: ; d114
-	ds 2
-TempMonExp:: ; d116
-	ds 3
-TempMonHPExp:: ; d119
-	ds 2
-TempMonAtkExp:: ; d11b
-	ds 2
-TempMonDefExp:: ; d11d
-	ds 2
-TempMonSpdExp:: ; d11f
-	ds 2
-TempMonSpclExp:: ; d121
-	ds 2
-TempMonDVs:: ; d123
-; hp = %1000 for each dv
-	ds 1 ; atk/def
-	ds 1 ; spd/spc
-TempMonPP:: ; d125
-	ds 4
-TempMonHappiness:: ; d129
-	ds 1
-TempMonPokerusStatus:: ; d12a
-	ds 1
-TempMonCaughtData:: ; d12b
-TempMonCaughtTime:: ; d12b
-TempMonCaughtLevel:: ; d12b
-	ds 1
-TempMonCaughtGender:: ; d12c
-TempMonCaughtLocation:: ; d12c
-	ds 1
-TempMonLevel:: ; d12d
-	ds 1
-TempMonStatus:: ; d12e
-	ds 1
-; d12f
-	ds 1
-TempMonHP:: ; d130
-	ds 2
-TempMonMaxHP:: ; d132
-	ds 2
-TempMonAtk:: ; d134
-	ds 2
-TempMonDef:: ; d136
-	ds 2
-TempMonSpd:: ; d138
-	ds 2
-TempMonSpclAtk:: ; d13a
-	ds 2
-TempMonSpclDef:: ; d13c
-	ds 2
+	party_struct TempMon
 TempMonEnd:: ; d13e
 
 	ds 3
@@ -1316,15 +1240,8 @@
 EnemyMonItem:: ; d207
 	ds 1
 
-EnemyMonMoves::
-EnemyMonMove1:: ; d208
-	ds 1
-EnemyMonMove2:: ; d209
-	ds 1
-EnemyMonMove3:: ; d20a
-	ds 1
-EnemyMonMove4:: ; d20b
-	ds 1
+EnemyMonMoves:: ; d208
+	ds NUM_MOVES
 EnemyMonMovesEnd::
 
 EnemyMonDVs::
@@ -1333,16 +1250,9 @@
 EnemyMonSpdSpclDV:: ; d20d
 	ds 1
 	
-EnemyMonPP::
-EnemyMonPPMove1:: ; d20e
-	ds 1
-EnemyMonPPMove2:: ; d20f
-	ds 1
-EnemyMonPPMove3:: ; d210
-	ds 1
-EnemyMonPPMove4:: ; d211
-	ds 1
-	
+EnemyMonPP:: ; d20e
+	ds NUM_MOVES
+
 EnemyMonHappiness:: ; d212
 	ds 1
 EnemyMonLevel:: ; d213
@@ -1729,7 +1639,10 @@
 Money:: ; d84e
 	ds 3
 
-	ds 4
+wMomsMoney:: ; d851
+	ds 3
+wMomSavingMoney:: ; d854
+	ds 1
 
 Coins:: ; d855
 	ds 2
@@ -2087,7 +2000,7 @@
 	ds 11
 EggOT:: ; df70
 	ds 11
-EggStats::
+EggMon::
 EggSpecies:: ; df7b
 	ds 1
 	ds 31