shithub: pokecrystal

Download patch

ref: 40010e2514bffb35e9895f5cb1185296f9020c02
parent: aaf77957bf6e2a149827461a3126fea0a85102c9
author: yenatch <[email protected]>
date: Mon Sep 9 17:51:41 EDT 2013

split protect and endure effects into battle/effects/

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9544,104 +9544,9 @@
 
 INCLUDE "battle/effects/curse.asm"
 
+INCLUDE "battle/effects/protect.asm"
 
-BattleCommand55: ; 37618
-; protect
-	call ProtectChance
-	ret c
-
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call GetBattleVarPair
-	set SUBSTATUS_PROTECT, [hl]
-
-	call Function0x37e01
-
-	ld hl, ProtectedItselfText
-	jp StdBattleTextBox
-; 3762c
-
-
-ProtectChance: ; 3762c
-
-	ld de, PlayerProtectCount
-	ld a, [hBattleTurn]
-	and a
-	jr z, .asm_37637
-	ld de, EnemyProtectCount
-.asm_37637
-
-	call Function0x36abf
-	jr nz, .failed
-
-; Can't have a substitute.
-
-	ld a, BATTLE_VARS_SUBSTATUS4
-	call CleanGetBattleVarPair
-	bit SUBSTATUS_SUBSTITUTE, a
-	jr nz, .failed
-
-; Halve the chance of a successful Protect for each consecutive use.
-
-	ld b, $ff
-	ld a, [de]
-	ld c, a
-.loop
-	ld a, c
-	and a
-	jr z, .done
-	dec c
-
-	srl b
-	ld a, b
-	and a
-	jr nz, .loop
-	jr .failed
-.done
-
-.rand
-	call BattleRandom
-	and a
-	jr z, .rand
-
-	dec a
-	cp b
-	jr nc, .failed
-
-; Another consecutive Protect use.
-
-	ld a, [de]
-	inc a
-	ld [de], a
-
-	and a
-	ret
-
-
-.failed
-	xor a
-	ld [de], a
-	call Function0x37e77
-	call PrintButItFailed
-	scf
-	ret
-; 3766f
-
-
-BattleCommand5a: ; 3766f
-; endure
-
-	call ProtectChance
-	ret c
-
-	ld a, BATTLE_VARS_SUBSTATUS1
-	call GetBattleVarPair
-	set SUBSTATUS_ENDURE, [hl]
-
-	call Function0x37e01
-
-	ld hl, BracedItselfText
-	jp StdBattleTextBox
-; 37683
+INCLUDE "battle/effects/endure.asm"
 
 
 BattleCommand56: ; 37683
--- /dev/null
+++ b/battle/effects/endure.asm
@@ -1,0 +1,16 @@
+BattleCommand5a: ; 3766f
+; endure
+
+	call ProtectChance
+	ret c
+
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call GetBattleVarPair
+	set SUBSTATUS_ENDURE, [hl]
+
+	call Function0x37e01
+
+	ld hl, BracedItselfText
+	jp StdBattleTextBox
+; 37683
+
--- /dev/null
+++ b/battle/effects/protect.asm
@@ -1,0 +1,81 @@
+BattleCommand55: ; 37618
+; protect
+	call ProtectChance
+	ret c
+
+	ld a, BATTLE_VARS_SUBSTATUS1
+	call GetBattleVarPair
+	set SUBSTATUS_PROTECT, [hl]
+
+	call Function0x37e01
+
+	ld hl, ProtectedItselfText
+	jp StdBattleTextBox
+; 3762c
+
+
+ProtectChance: ; 3762c
+
+	ld de, PlayerProtectCount
+	ld a, [hBattleTurn]
+	and a
+	jr z, .asm_37637
+	ld de, EnemyProtectCount
+.asm_37637
+
+	call Function0x36abf
+	jr nz, .failed
+
+; Can't have a substitute.
+
+	ld a, BATTLE_VARS_SUBSTATUS4
+	call CleanGetBattleVarPair
+	bit SUBSTATUS_SUBSTITUTE, a
+	jr nz, .failed
+
+; Halve the chance of a successful Protect for each consecutive use.
+
+	ld b, $ff
+	ld a, [de]
+	ld c, a
+.loop
+	ld a, c
+	and a
+	jr z, .done
+	dec c
+
+	srl b
+	ld a, b
+	and a
+	jr nz, .loop
+	jr .failed
+.done
+
+.rand
+	call BattleRandom
+	and a
+	jr z, .rand
+
+	dec a
+	cp b
+	jr nc, .failed
+
+; Another consecutive Protect use.
+
+	ld a, [de]
+	inc a
+	ld [de], a
+
+	and a
+	ret
+
+
+.failed
+	xor a
+	ld [de], a
+	call Function0x37e77
+	call PrintButItFailed
+	scf
+	ret
+; 3766f
+