shithub: pokecrystal

Download patch

ref: d7cdd0ac7383fd120a2b8114af08541058cb691c
parent: d7bf70f3c902ce9380e05ccd6828b5e8973d4ae1
author: yenatch <[email protected]>
date: Sun Dec 1 09:19:57 EST 2013

split out some more move effects

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -6634,12 +6634,12 @@
 
 
 Table0x364e6: ; 364e6
-	dw $6419
-	dw $641c
-	dw $6421
-	dw $6428
-	dw $6432
-	dw $6442
+	db 25, 100
+	db 28, 100
+	db 33, 100
+	db 40, 100
+	db 50, 100
+	db 66, 100
 ; 364f2
 
 
@@ -6806,7 +6806,7 @@
 	xor a
 	ld [$ffd4], a
 	call CallBankF
-	jp $31f6
+	jp WaitBGMap
 ; 365c3
 
 
@@ -6820,7 +6820,7 @@
 	xor a
 	ld [$ffd4], a
 	call CallBankF
-	jp $31f6
+	jp WaitBGMap
 ; 365d7
 
 
@@ -6873,6 +6873,7 @@
 	ld a, [hli]
 	push hl
 	push bc
+
 	ld c, a
 	dec c
 	ld b, 0
@@ -6879,44 +6880,47 @@
 	ld hl, Table0x364e6
 	add hl, bc
 	add hl, bc
+
 	xor a
-	ld [$ffb4], a
+	ld [hMultiplicand], a
 	ld a, [de]
-	ld [$ffb5], a
+	ld [hMultiplicand + 1], a
 	inc de
 	ld a, [de]
-	ld [$ffb6], a
+	ld [hMultiplicand + 2], a
 	inc de
+
 	ld a, [hli]
-	ld [$ffb7], a
+	ld [hMultiplier], a
 	call Multiply
 
 	ld a, [hl]
-	ld [$ffb7], a
-	ld b, $4
+	ld [hDivisor], a
+	ld b, 4
 	call Divide
 
-	ld a, [$ffb5]
+	ld a, [hQuotient + 1]
 	ld b, a
-	ld a, [$ffb6]
+	ld a, [hQuotient + 2]
 	or b
 	jr nz, .asm_36651
 
-	ld a, $1
-	ld [$ffb6], a
+	ld a, 1
+	ld [hQuotient + 2], a
 	jr .asm_36662
 
 .asm_36651
-	ld a, [$ffb6]
-	cp $e7
+	ld a, [hQuotient + 2]
+	cp 999 % $100
 	ld a, b
-	sbc $3
+	sbc 999 / $100
 	jr c, .asm_36662
 
-	ld a, $e7
+	ld a, 999 % $100
 	ld [$ffb6], a
-	ld a, $3
+	ld a, 999 / $100
 	ld [$ffb5], a
+
 .asm_36662
 	pop bc
 	ld a, [$ffb5]
@@ -9139,118 +9143,16 @@
 	ret nc
 	callba DrawPlayerHUD
 	callba Function3e043
-	call $31f6
+	call WaitBGMap
 	jp RefreshBattleHuds
 ; 373c9
 
 
-BattleCommand1b: ; 373c9
-; mirrormove
+INCLUDE "battle/effects/mirror_move.asm"
 
-	call Function0x372d8
-	ld a, BATTLE_VARS_MOVE
-	call _GetBattleVar
-	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
-	call GetBattleVar
-	and a
-	jr z, .asm_373de ; 373d7 $5
-	call CheckUserMove
-	jr nz, .asm_373ea ; 373dc $c
-.asm_373de
-	call Function0x37e77
-	ld hl, MirrorMoveFailedText
-	call StdBattleTextBox
-	jp EndMoveEffect
-.asm_373ea
-	ld a, b
-	ld [hl], a
-	ld [$d265], a
-	push af
-	ld a, BATTLE_VARS_MOVE_ANIM
-	call _GetBattleVar
-	ld d, h
-	ld e, l
-	pop af
-	dec a
-	call GetMoveData
-	call GetMoveName
-	call $30d6
-	call Function0x34548
-	jr nz, .asm_37412 ; 37405 $b
-	ld a, [$c689]
-	push af
-	call BattleCommand0a
-	pop af
-	ld [$c689], a
-.asm_37412
-	call BattleCommandaa
-	jp ResetTurn
-; 37418
+INCLUDE "battle/effects/metronome.asm"
 
 
-BattleCommand34: ; 37418
-; metronome
-
-	call Function0x372d8
-	call Function0x34548
-	jr nz, .asm_3742b
-
-	ld a, [$c689]
-	push af
-	call BattleCommand0a
-	pop af
-	ld [$c689], a
-
-.asm_3742b
-	call Function0x37e36
-
-.GetMove
-	call BattleRandom
-
-; No invalid moves.
-	cp BEAT_UP + 1
-	jr nc, .GetMove
-
-; None of the moves in MetronomeExcepts.
-	push af
-	ld de, 1
-	ld hl, MetronomeExcepts
-	call IsInArray
-	pop bc
-	jr c, .GetMove
-
-; No moves the user already has.
-	ld a, b
-	call CheckUserMove
-	jr z, .GetMove
-
-
-	ld a, BATTLE_VARS_MOVE
-	call _GetBattleVar
-	ld [hl], b
-	call UpdateMoveData
-	jp ResetTurn
-; 37454
-
-
-MetronomeExcepts: ; 37454
-	db $00
-	db METRONOME
-	db STRUGGLE
-	db SKETCH
-	db MIMIC
-	db COUNTER
-	db MIRROR_COAT
-	db PROTECT
-	db DETECT
-	db ENDURE
-	db DESTINY_BOND
-	db SLEEP_TALK
-	db THIEF
-	db $ff
-; 37462
-
-
 CheckUserMove: ; 37462
 ; Return z if the user has move a.
 	ld b, a
@@ -9293,124 +9195,9 @@
 ; 37492
 
 
-BattleCommand50: ; 37492
-; thief
+INCLUDE "battle/effects/thief.asm"
 
-	ld a, [hBattleTurn]
-	and a
-	jr nz, .enemy
 
-; The player needs to be able to steal an item.
-
-	call .playeritem
-	ld a, [hl]
-	and a
-	ret nz
-
-; The enemy needs to have an item to steal.
-
-	call .enemyitem
-	ld a, [hl]
-	and a
-	ret z
-
-; Can't steal mail.
-
-	ld [$d265], a
-	ld d, a
-	callba ItemIsMail
-	ret c
-
-	ld a, [EffectFailed]
-	and a
-	ret nz
-
-	ld a, [InLinkBattle]
-	and a
-	jr z, .stealenemyitem
-
-	ld a, [IsInBattle]
-	dec a
-	ret z
-
-.stealenemyitem
-	call .enemyitem
-	xor a
-	ld [hl], a
-	ld [de], a
-
-	call .playeritem
-	ld a, [$d265]
-	ld [hl], a
-	ld [de], a
-	jr .stole
-
-
-.enemy
-
-; The enemy can't already have an item.
-
-	call .enemyitem
-	ld a, [hl]
-	and a
-	ret nz
-
-; The player must have an item to steal.
-
-	call .playeritem
-	ld a, [hl]
-	and a
-	ret z
-
-; Can't steal mail!
-
-	ld [$d265], a
-	ld d, a
-	callba ItemIsMail
-	ret c
-
-	ld a, [EffectFailed]
-	and a
-	ret nz
-
-; If the enemy steals your item,
-; it's gone for good if you don't get it back.
-
-	call .playeritem
-	xor a
-	ld [hl], a
-	ld [de], a
-
-	call .enemyitem
-	ld a, [$d265]
-	ld [hl], a
-	ld [de], a
-
-
-.stole
-	call GetItemName
-	ld hl, StoleText
-	jp StdBattleTextBox
-
-
-.playeritem
-	ld a, 1
-	call BattlePartyAttr
-	ld d, h
-	ld e, l
-	ld hl, BattleMonItem
-	ret
-
-.enemyitem
-	ld a, 1
-	call OTPartyAttr
-	ld d, h
-	ld e, l
-	ld hl, EnemyMonItem
-	ret
-; 37517
-
-
 BattleCommand51: ; 37517
 ; arenatrap
 
@@ -9439,46 +9226,9 @@
 ; 37536
 
 
-BattleCommand52: ; 37536
-; nightmare
+INCLUDE "battle/effects/nightmare.asm"
 
-; Can't hit an absent opponent.
 
-	call CheckHiddenOpponent
-	jr nz, .failed
-
-; Can't hit a substitute.
-
-	call CheckSubstituteOpp
-	jr nz, .failed
-
-; Only works on a sleeping opponent.
-
-	ld a, BATTLE_VARS_STATUS_OPP
-	call _GetBattleVar
-	and SLP
-	jr z, .failed
-
-; Bail if the opponent is already having a nightmare.
-
-	ld a, BATTLE_VARS_SUBSTATUS1_OPP
-	call _GetBattleVar
-	bit SUBSTATUS_NIGHTMARE, [hl]
-	jr nz, .failed
-
-; Otherwise give the opponent a nightmare.
-
-	set SUBSTATUS_NIGHTMARE, [hl]
-	call Function0x37e01
-	ld hl, StartedNightmareText
-	jp StdBattleTextBox
-
-.failed
-	call Function0x37e77
-	jp PrintButItFailed
-; 37563
-
-
 BattleCommand53: ; 37563
 ; defrost
 
@@ -9520,172 +9270,13 @@
 
 INCLUDE "battle/effects/spikes.asm"
 
+INCLUDE "battle/effects/foresight.asm"
 
-BattleCommand57: ; 376a0
-; foresight
+INCLUDE "battle/effects/perish_song.asm"
 
-	ld a, [AttackMissed]
-	and a
-	jr nz, .asm_376bf
-	call CheckHiddenOpponent
-	jr nz, .asm_376bf
-	ld a, BATTLE_VARS_SUBSTATUS1_OPP
-	call _GetBattleVar
-	bit SUBSTATUS_IDENTIFIED, [hl]
-	jr nz, .asm_376bf
-	set SUBSTATUS_IDENTIFIED, [hl]
-	call Function0x37e01
-	ld hl, IdentifiedText
-	jp StdBattleTextBox
-.asm_376bf
-	jp Function0x37354
-; 376c2
+INCLUDE "battle/effects/sandstorm.asm"
 
-
-BattleCommand58: ; 376c2
-; perishsong
-
-	ld hl, PlayerSubStatus1
-	ld de, EnemySubStatus1
-	bit SUBSTATUS_PERISH, [hl]
-	jr z, .asm_376d1
-	ld a, [de]
-	bit SUBSTATUS_PERISH, a
-	jr nz, .asm_376f2
-.asm_376d1
-	bit SUBSTATUS_PERISH, [hl]
-	jr nz, .asm_376dc
-	set SUBSTATUS_PERISH, [hl]
-	ld a, 4
-	ld [PlayerPerishCount], a
-.asm_376dc
-	ld a, [de]
-	bit SUBSTATUS_PERISH, a
-	jr nz, .asm_376e9
-	set SUBSTATUS_PERISH, a
-	ld [de], a
-	ld a, 4
-	ld [EnemyPerishCount], a
-.asm_376e9
-	call Function0x37e01
-	ld hl, StartPerishText
-	jp StdBattleTextBox
-.asm_376f2
-	call Function0x37e77
-	jp PrintButItFailed
-; 376f8
-
-
-BattleCommand59: ; 376f8
-; startsandstorm
-
-	ld a, [Weather]
-	cp WEATHER_SANDSTORM
-	jr z, .asm_37712
-	ld a, WEATHER_SANDSTORM
-	ld [Weather], a
-	ld a, 5
-	ld [WeatherCount], a
-	call Function0x37e01
-	ld hl, SandstormBrewedText
-	jp StdBattleTextBox
-.asm_37712
-	call Function0x37e77
-	jp PrintButItFailed
-; 37718
-
-
-BattleCommand5b: ; 37718
-; checkcurl
-
-	ld de, PlayerRolloutCount
-	ld a, [hBattleTurn]
-	and a
-	jr z, .asm_37723
-	ld de, EnemyRolloutCount
-.asm_37723
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call GetBattleVar
-	bit SUBSTATUS_ENCORED, a
-	jr z, .asm_37731
-
-	ld b, $4 ; doturn
-	jp SkipToBattleCommand
-
-.asm_37731
-	xor a
-	ld [de], a
-	ret
-; 37734
-
-
-BattleCommand5c: ; 37734
-; rolloutpower
-
-	ld a, BATTLE_VARS_STATUS
-	call GetBattleVar
-	and 7
-	ret nz
-
-	ld hl, PlayerRolloutCount
-	ld a, [hBattleTurn]
-	and a
-	jr z, .asm_37747
-	ld hl, EnemyRolloutCount
-
-.asm_37747
-	ld a, [hl]
-	and a
-	jr nz, .asm_37750
-	ld a, 1
-	ld [$c73e], a
-
-.asm_37750
-	ld a, [AttackMissed]
-	and a
-	jr z, .hit
-
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call _GetBattleVar
-	res 6, [hl]
-	ret
-
-.hit
-	inc [hl]
-	ld a, [hl]
-	ld b, a
-	cp $5
-	jr c, .asm_3776e ; 37763 $9
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call _GetBattleVar
-	res 6, [hl]
-	jr .asm_37775 ; 3776c $7
-
-.asm_3776e
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call _GetBattleVar
-	set 6, [hl]
-
-.asm_37775
-	ld a, BATTLE_VARS_SUBSTATUS2
-	call GetBattleVar
-	bit 0, a
-	jr z, .asm_3777f ; 3777c $1
-	inc b
-.asm_3777f
-	dec b
-	jr z, .asm_37790 ; 37780 $e
-	ld hl, CurDamage + 1
-	sla [hl]
-	dec hl
-	rl [hl]
-	jr nc, .asm_3777f ; 3778a $f3
-	ld a, $ff
-	ld [hli], a
-	ld [hl], a
-.asm_37790
-	ret
-; 37791
+INCLUDE "battle/effects/rollout.asm"
 
 
 BattleCommand5d: ; 37791
--- /dev/null
+++ b/battle/effects/foresight.asm
@@ -1,0 +1,24 @@
+BattleCommand57: ; 376a0
+; foresight
+
+	ld a, [AttackMissed]
+	and a
+	jr nz, .failed
+
+	call CheckHiddenOpponent
+	jr nz, .failed
+
+	ld a, BATTLE_VARS_SUBSTATUS1_OPP
+	call _GetBattleVar
+	bit SUBSTATUS_IDENTIFIED, [hl]
+	jr nz, .failed
+
+	set SUBSTATUS_IDENTIFIED, [hl]
+	call Function0x37e01
+	ld hl, IdentifiedText
+	jp StdBattleTextBox
+
+.failed
+	jp Function0x37354
+; 376c2
+
--- /dev/null
+++ b/battle/effects/metronome.asm
@@ -1,0 +1,62 @@
+BattleCommand34: ; 37418
+; metronome
+
+	call Function0x372d8
+	call Function0x34548
+	jr nz, .asm_3742b
+
+	ld a, [$c689]
+	push af
+	call BattleCommand0a
+	pop af
+	ld [$c689], a
+
+.asm_3742b
+	call Function0x37e36
+
+.GetMove
+	call BattleRandom
+
+; No invalid moves.
+	cp NUM_ATTACKS + 1
+	jr nc, .GetMove
+
+; None of the moves in MetronomeExcepts.
+	push af
+	ld de, 1
+	ld hl, MetronomeExcepts
+	call IsInArray
+	pop bc
+	jr c, .GetMove
+
+; No moves the user already has.
+	ld a, b
+	call CheckUserMove
+	jr z, .GetMove
+
+
+	ld a, BATTLE_VARS_MOVE
+	call _GetBattleVar
+	ld [hl], b
+	call UpdateMoveData
+	jp ResetTurn
+; 37454
+
+
+MetronomeExcepts: ; 37454
+	db NO_MOVE
+	db METRONOME
+	db STRUGGLE
+	db SKETCH
+	db MIMIC
+	db COUNTER
+	db MIRROR_COAT
+	db PROTECT
+	db DETECT
+	db ENDURE
+	db DESTINY_BOND
+	db SLEEP_TALK
+	db THIEF
+	db -1
+; 37462
+
--- /dev/null
+++ b/battle/effects/mirror_move.asm
@@ -1,0 +1,53 @@
+BattleCommand1b: ; 373c9
+; mirrormove
+
+	call Function0x372d8
+
+	ld a, BATTLE_VARS_MOVE
+	call _GetBattleVar
+
+	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
+	call GetBattleVar
+	and a
+	jr z, .failed
+
+	call CheckUserMove
+	jr nz, .use
+
+.failed
+	call Function0x37e77
+
+	ld hl, MirrorMoveFailedText
+	call StdBattleTextBox
+	jp EndMoveEffect
+
+.use
+	ld a, b
+	ld [hl], a
+	ld [$d265], a
+
+	push af
+	ld a, BATTLE_VARS_MOVE_ANIM
+	call _GetBattleVar
+	ld d, h
+	ld e, l
+	pop af
+
+	dec a
+	call GetMoveData
+	call GetMoveName
+	call CopyName1
+	call Function0x34548
+	jr nz, .done
+
+	ld a, [$c689]
+	push af
+	call BattleCommand0a
+	pop af
+	ld [$c689], a
+
+.done
+	call BattleCommandaa
+	jp ResetTurn
+; 37418
+
--- /dev/null
+++ b/battle/effects/nightmare.asm
@@ -1,0 +1,39 @@
+BattleCommand52: ; 37536
+; nightmare
+
+; Can't hit an absent opponent.
+
+	call CheckHiddenOpponent
+	jr nz, .failed
+
+; Can't hit a substitute.
+
+	call CheckSubstituteOpp
+	jr nz, .failed
+
+; Only works on a sleeping opponent.
+
+	ld a, BATTLE_VARS_STATUS_OPP
+	call _GetBattleVar
+	and SLP
+	jr z, .failed
+
+; Bail if the opponent is already having a nightmare.
+
+	ld a, BATTLE_VARS_SUBSTATUS1_OPP
+	call _GetBattleVar
+	bit SUBSTATUS_NIGHTMARE, [hl]
+	jr nz, .failed
+
+; Otherwise give the opponent a nightmare.
+
+	set SUBSTATUS_NIGHTMARE, [hl]
+	call Function0x37e01
+	ld hl, StartedNightmareText
+	jp StdBattleTextBox
+
+.failed
+	call Function0x37e77
+	jp PrintButItFailed
+; 37563
+
--- /dev/null
+++ b/battle/effects/perish_song.asm
@@ -1,0 +1,41 @@
+BattleCommand58: ; 376c2
+; perishsong
+
+
+	ld hl, PlayerSubStatus1
+	ld de, EnemySubStatus1
+	bit SUBSTATUS_PERISH, [hl]
+	jr z, .ok
+
+	ld a, [de]
+	bit SUBSTATUS_PERISH, a
+	jr nz, .failed
+
+.ok
+	bit SUBSTATUS_PERISH, [hl]
+	jr nz, .enemy
+
+	set SUBSTATUS_PERISH, [hl]
+	ld a, 4
+	ld [PlayerPerishCount], a
+
+.enemy
+	ld a, [de]
+	bit SUBSTATUS_PERISH, a
+	jr nz, .done
+
+	set SUBSTATUS_PERISH, a
+	ld [de], a
+	ld a, 4
+	ld [EnemyPerishCount], a
+
+.done
+	call Function0x37e01
+	ld hl, StartPerishText
+	jp StdBattleTextBox
+
+.failed
+	call Function0x37e77
+	jp PrintButItFailed
+; 376f8
+
--- /dev/null
+++ b/battle/effects/rollout.asm
@@ -1,0 +1,97 @@
+BattleCommand5b: ; 37718
+; checkcurl
+
+	ld de, PlayerRolloutCount
+	ld a, [hBattleTurn]
+	and a
+	jr z, .asm_37723
+	ld de, EnemyRolloutCount
+
+.asm_37723
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call GetBattleVar
+	bit SUBSTATUS_ENCORED, a
+	jr z, .asm_37731
+
+	ld b, $4 ; doturn
+	jp SkipToBattleCommand
+
+.asm_37731
+	xor a
+	ld [de], a
+	ret
+; 37734
+
+
+BattleCommand5c: ; 37734
+; rolloutpower
+
+	ld a, BATTLE_VARS_STATUS
+	call GetBattleVar
+	and 7
+	ret nz
+
+	ld hl, PlayerRolloutCount
+	ld a, [hBattleTurn]
+	and a
+	jr z, .asm_37747
+	ld hl, EnemyRolloutCount
+
+.asm_37747
+	ld a, [hl]
+	and a
+	jr nz, .asm_37750
+	ld a, 1
+	ld [$c73e], a
+
+.asm_37750
+	ld a, [AttackMissed]
+	and a
+	jr z, .hit
+
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call _GetBattleVar
+	res 6, [hl]
+	ret
+
+.hit
+	inc [hl]
+	ld a, [hl]
+	ld b, a
+	cp $5
+	jr c, .asm_3776e
+
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call _GetBattleVar
+	res 6, [hl]
+	jr .asm_37775
+
+.asm_3776e
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call _GetBattleVar
+	set 6, [hl]
+
+.asm_37775
+	ld a, BATTLE_VARS_SUBSTATUS2
+	call GetBattleVar
+	bit 0, a
+	jr z, .asm_3777f
+	inc b
+.asm_3777f
+	dec b
+	jr z, .asm_37790
+
+	ld hl, CurDamage + 1
+	sla [hl]
+	dec hl
+	rl [hl]
+	jr nc, .asm_3777f
+
+	ld a, $ff
+	ld [hli], a
+	ld [hl], a
+
+.asm_37790
+	ret
+; 37791
+
--- /dev/null
+++ b/battle/effects/sandstorm.asm
@@ -1,0 +1,20 @@
+BattleCommand59: ; 376f8
+; startsandstorm
+
+	ld a, [Weather]
+	cp WEATHER_SANDSTORM
+	jr z, .failed
+
+	ld a, WEATHER_SANDSTORM
+	ld [Weather], a
+	ld a, 5
+	ld [WeatherCount], a
+	call Function0x37e01
+	ld hl, SandstormBrewedText
+	jp StdBattleTextBox
+
+.failed
+	call Function0x37e77
+	jp PrintButItFailed
+; 37718
+
--- /dev/null
+++ b/battle/effects/thief.asm
@@ -1,0 +1,117 @@
+BattleCommand50: ; 37492
+; thief
+
+	ld a, [hBattleTurn]
+	and a
+	jr nz, .enemy
+
+; The player needs to be able to steal an item.
+
+	call .playeritem
+	ld a, [hl]
+	and a
+	ret nz
+
+; The enemy needs to have an item to steal.
+
+	call .enemyitem
+	ld a, [hl]
+	and a
+	ret z
+
+; Can't steal mail.
+
+	ld [$d265], a
+	ld d, a
+	callba ItemIsMail
+	ret c
+
+	ld a, [EffectFailed]
+	and a
+	ret nz
+
+	ld a, [InLinkBattle]
+	and a
+	jr z, .stealenemyitem
+
+	ld a, [IsInBattle]
+	dec a
+	ret z
+
+.stealenemyitem
+	call .enemyitem
+	xor a
+	ld [hl], a
+	ld [de], a
+
+	call .playeritem
+	ld a, [$d265]
+	ld [hl], a
+	ld [de], a
+	jr .stole
+
+
+.enemy
+
+; The enemy can't already have an item.
+
+	call .enemyitem
+	ld a, [hl]
+	and a
+	ret nz
+
+; The player must have an item to steal.
+
+	call .playeritem
+	ld a, [hl]
+	and a
+	ret z
+
+; Can't steal mail!
+
+	ld [$d265], a
+	ld d, a
+	callba ItemIsMail
+	ret c
+
+	ld a, [EffectFailed]
+	and a
+	ret nz
+
+; If the enemy steals your item,
+; it's gone for good if you don't get it back.
+
+	call .playeritem
+	xor a
+	ld [hl], a
+	ld [de], a
+
+	call .enemyitem
+	ld a, [$d265]
+	ld [hl], a
+	ld [de], a
+
+
+.stole
+	call GetItemName
+	ld hl, StoleText
+	jp StdBattleTextBox
+
+
+.playeritem
+	ld a, 1
+	call BattlePartyAttr
+	ld d, h
+	ld e, l
+	ld hl, BattleMonItem
+	ret
+
+.enemyitem
+	ld a, 1
+	call OTPartyAttr
+	ld d, h
+	ld e, l
+	ld hl, EnemyMonItem
+	ret
+; 37517
+