shithub: pokecrystal

Download patch

ref: 110477cd9e6ed4c9249f7bac28b5a84fa81e8efc
parent: d3fa77253aa871fabdfc0867c35859d669210256
author: yenatch <yenatch@gmail.com>
date: Mon Sep 9 14:43:22 EDT 2013

split curse effect into battle/effects/curse.asm

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9542,103 +9542,7 @@
 ; 37588
 
 
-BattleCommand54: ; 37588
-; curse
-
-	ld de, BattleMonType1
-	ld bc, PlayerStatLevels
-	ld a, [hBattleTurn]
-	and a
-	jr z, .go
-	ld de, EnemyMonType1
-	ld bc, EnemyStatLevels
-
-.go
-
-; Curse is different for Ghost-types.
-
-	ld a, [de]
-	cp GHOST
-	jr z, .ghost
-	inc de
-	ld a, [de]
-	cp GHOST
-	jr z, .ghost
-
-
-; If no stats can be increased, don't.
-
-; Attack
-	ld a, [bc]
-	cp 13 ; max
-	jr c, .raise
-
-; Defense
-	inc bc
-	ld a, [bc]
-	cp 13 ; max
-	jr nc, .cantraise
-
-.raise
-
-; Raise Attack and Defense, and lower Speed.
-
-	ld a, $1
-	ld [$c689], a
-	call Function0x37e01
-	ld a, $2
-	call Function0x36532
-	call SwitchTurn
-	call BattleCommand8d
-	call ResetMiss
-	call SwitchTurn
-	call BattleCommand70
-	call BattleCommand8c
-	call ResetMiss
-	call BattleCommand71
-	jp BattleCommand8c
-
-
-.ghost
-
-; Cut HP in half and put a curse on the opponent.
-
-	call CheckHiddenOpponent
-	jr nz, .failed
-
-	call CheckSubstituteOpp
-	jr nz, .failed
-
-	ld a, BATTLE_VARS_SUBSTATUS1_OPP
-	call GetBattleVarPair
-	bit 1, [hl]
-	jr nz, .failed
-
-	set 1, [hl]
-	call Function0x37e01
-	ld hl, GetHalfMaxHP
-	call CallBankF
-	ld hl, Function3cc3f
-	call CallBankF
-	call UpdateUserInParty
-	ld hl, PutACurseText
-	jp StdBattleTextBox
-
-.failed
-	call Function0x37e77
-	jp PrintButItFailed
-
-
-.cantraise
-
-; Can't raise either stat.
-
-	ld b, $8 ; ABILITY
-	call GetStatName
-	call Function0x37e77
-	ld hl, WontRiseAnymoreText
-	jp StdBattleTextBox
-; 37618
+INCLUDE "battle/effects/curse.asm"
 
 
 BattleCommand55: ; 37618
--- /dev/null
+++ b/battle/effects/curse.asm
@@ -1,0 +1,98 @@
+BattleCommand54: ; 37588
+; curse
+
+	ld de, BattleMonType1
+	ld bc, PlayerStatLevels
+	ld a, [hBattleTurn]
+	and a
+	jr z, .go
+	ld de, EnemyMonType1
+	ld bc, EnemyStatLevels
+
+.go
+
+; Curse is different for Ghost-types.
+
+	ld a, [de]
+	cp GHOST
+	jr z, .ghost
+	inc de
+	ld a, [de]
+	cp GHOST
+	jr z, .ghost
+
+
+; If no stats can be increased, don't.
+
+; Attack
+	ld a, [bc]
+	cp 13 ; max
+	jr c, .raise
+
+; Defense
+	inc bc
+	ld a, [bc]
+	cp 13 ; max
+	jr nc, .cantraise
+
+.raise
+
+; Raise Attack and Defense, and lower Speed.
+
+	ld a, $1
+	ld [$c689], a
+	call Function0x37e01
+	ld a, $2
+	call Function0x36532
+	call SwitchTurn
+	call BattleCommand8d
+	call ResetMiss
+	call SwitchTurn
+	call BattleCommand70
+	call BattleCommand8c
+	call ResetMiss
+	call BattleCommand71
+	jp BattleCommand8c
+
+
+.ghost
+
+; Cut HP in half and put a curse on the opponent.
+
+	call CheckHiddenOpponent
+	jr nz, .failed
+
+	call CheckSubstituteOpp
+	jr nz, .failed
+
+	ld a, BATTLE_VARS_SUBSTATUS1_OPP
+	call GetBattleVarPair
+	bit 1, [hl]
+	jr nz, .failed
+
+	set 1, [hl]
+	call Function0x37e01
+	ld hl, GetHalfMaxHP
+	call CallBankF
+	ld hl, Function3cc3f
+	call CallBankF
+	call UpdateUserInParty
+	ld hl, PutACurseText
+	jp StdBattleTextBox
+
+.failed
+	call Function0x37e77
+	jp PrintButItFailed
+
+
+.cantraise
+
+; Can't raise either stat.
+
+	ld b, $8 ; ABILITY
+	call GetStatName
+	call Function0x37e77
+	ld hl, WontRiseAnymoreText
+	jp StdBattleTextBox
+; 37618
+
--