summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/battle/core.asm68
-rw-r--r--engine/battle/effect_commands.asm90
-rw-r--r--engine/battle/move_effects/pain_split.asm20
-rw-r--r--engine/items/item_effects.asm54
-rw-r--r--wram.asm11
5 files changed, 120 insertions, 123 deletions
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index fb4daecc..02f80eef 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -1744,26 +1744,26 @@ SubtractHP:
.ok
inc hl
ld a, [hl]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
sub c
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld a, [hl]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
sbc b
ld [hl], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ret nc
- ld a, [wBuffer3]
+ ld a, [wHPBuffer2]
ld c, a
- ld a, [wBuffer4]
+ ld a, [wHPBuffer2 + 1]
ld b, a
xor a
ld [hli], a
ld [hl], a
- ld [wBuffer5], a
- ld [wBuffer6], a
+ ld [wHPBuffer3], a
+ ld [wHPBuffer3 + 1], a
ret
GetSixteenthMaxHP:
@@ -1829,7 +1829,7 @@ GetHalfMaxHP:
ret
GetMaxHP:
-; output: bc, wBuffer1-2
+; output: bc, wHPBuffer1
ld hl, wBattleMonMaxHP
ldh a, [hBattleTurn]
@@ -1838,11 +1838,11 @@ GetMaxHP:
ld hl, wEnemyMonMaxHP
.ok
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld b, a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ld c, a
ret
@@ -1860,9 +1860,9 @@ GetHalfHP: ; unreferenced
srl b
rr c
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ret
CheckUserHasEnoughHP:
@@ -1887,36 +1887,36 @@ RestoreHP:
ld hl, wBattleMonMaxHP
.ok
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hld]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
dec hl
ld a, [hl]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
add c
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld a, [hl]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
adc b
ld [hli], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
- ld a, [wBuffer1]
+ ld a, [wHPBuffer1]
ld c, a
ld a, [hld]
sub c
- ld a, [wBuffer2]
+ ld a, [wHPBuffer1 + 1]
ld b, a
ld a, [hl]
sbc b
jr c, .overflow
ld a, b
ld [hli], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld a, c
ld [hl], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
.overflow
call SwitchTurnCore
@@ -4034,13 +4034,13 @@ HandleHPHealingItem:
; Store current HP in Buffer 3/4
push bc
ld a, [de]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
add a
ld c, a
dec de
ld a, [de]
inc de
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
adc a
ld b, a
ld a, b
@@ -4059,19 +4059,19 @@ HandleHPHealingItem:
.less
call ItemRecoveryAnim
- ; store max HP in wBuffer1/2
+ ; store max HP in wHPBuffer1
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ld a, [de]
add c
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld c, a
dec de
ld a, [de]
adc 0
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld b, a
ld a, [hld]
cp c
@@ -4079,15 +4079,15 @@ HandleHPHealingItem:
sbc b
jr nc, .okay
ld a, [hli]
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld a, [hl]
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
.okay
- ld a, [wBuffer6]
+ ld a, [wHPBuffer3 + 1]
ld [de], a
inc de
- ld a, [wBuffer5]
+ ld a, [wHPBuffer3]
ld [de], a
ldh a, [hBattleTurn]
ld [wWhichHPBar], a
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index 2560c33d..2641a00e 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -2412,19 +2412,19 @@ BattleCommand_CheckFaint:
.got_max_hp
ld [wWhichHPBar], a
ld a, [hld]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ld a, [hld]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
xor a
ld [hld], a
ld a, [hl]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
xor a
ld [hl], a
- ld [wBuffer5], a
- ld [wBuffer6], a
+ ld [wHPBuffer3], a
+ ld [wHPBuffer3 + 1], a
ld h, b
ld l, c
predef AnimateHPBar
@@ -3412,25 +3412,25 @@ DoEnemyDamage:
jp nz, DoSubstituteDamage
.ignore_substitute
- ; Substract wCurDamage from wEnemyMonHP.
- ; store original HP in little endian wBuffer3/4
+ ; Subtract wCurDamage from wEnemyMonHP.
+ ; store original HP in little endian wHPBuffer2
ld a, [hld]
ld b, a
ld a, [wEnemyMonHP + 1]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
sub b
ld [wEnemyMonHP + 1], a
ld a, [hl]
ld b, a
ld a, [wEnemyMonHP]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
sbc b
ld [wEnemyMonHP], a
jr nc, .no_underflow
- ld a, [wBuffer4]
+ ld a, [wHPBuffer2 + 1]
ld [hli], a
- ld a, [wBuffer3]
+ ld a, [wHPBuffer2]
ld [hl], a
xor a
ld hl, wEnemyMonHP
@@ -3440,14 +3440,14 @@ DoEnemyDamage:
.no_underflow
ld hl, wEnemyMonMaxHP
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ld hl, wEnemyMonHP
ld a, [hli]
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld a, [hl]
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
hlcoord 2, 2
xor a
@@ -3472,42 +3472,42 @@ DoPlayerDamage:
jp nz, DoSubstituteDamage
.ignore_substitute
- ; Substract wCurDamage from wBattleMonHP.
- ; store original HP in little endian wBuffer3/4
- ; store new HP in little endian wBuffer5/6
+ ; Subtract wCurDamage from wBattleMonHP.
+ ; store original HP in little endian wHPBuffer2
+ ; store new HP in little endian wHPBuffer3
ld a, [hld]
ld b, a
ld a, [wBattleMonHP + 1]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
sub b
ld [wBattleMonHP + 1], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld b, [hl]
ld a, [wBattleMonHP]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
sbc b
ld [wBattleMonHP], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
jr nc, .no_underflow
- ld a, [wBuffer4]
+ ld a, [wHPBuffer2 + 1]
ld [hli], a
- ld a, [wBuffer3]
+ ld a, [wHPBuffer2]
ld [hl], a
xor a
ld hl, wBattleMonHP
ld [hli], a
ld [hl], a
- ld hl, wBuffer5
+ ld hl, wHPBuffer3
ld [hli], a
ld [hl], a
.no_underflow
ld hl, wBattleMonMaxHP
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
hlcoord 10, 9
ld a, 1
@@ -3872,15 +3872,15 @@ SapHealth:
ld de, wEnemyMonMaxHP
.battlemonhp
- ; Store current HP in little endian wBuffer3/4
- ld bc, wBuffer4
+ ; Store current HP in little endian wHPBuffer2
+ ld bc, wHPBuffer2 + 1
ld a, [hli]
ld [bc], a
ld a, [hl]
dec bc
ld [bc], a
- ; Store max HP in little endian wBuffer1/2
+ ; Store max HP in little endian wHPBuffer1
ld a, [de]
dec bc
ld [bc], a
@@ -3889,20 +3889,20 @@ SapHealth:
dec bc
ld [bc], a
- ; Add hDividend to current HP and copy it to little endian wBuffer5/6
+ ; Add hDividend to current HP and copy it to little endian wHPBuffer3
ldh a, [hDividend + 1]
ld b, [hl]
add b
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ldh a, [hDividend]
ld b, [hl]
adc b
ld [hli], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
jr c, .max_hp
- ; Substract current HP from max HP (to see if we have more than max HP)
+ ; Subtract current HP from max HP (to see if we have more than max HP)
ld a, [hld]
ld b, a
ld a, [de]
@@ -3916,14 +3916,14 @@ SapHealth:
jr nc, .finish
.max_hp
- ; Load max HP into current HP and copy it to little endian wBuffer5/6
+ ; Load max HP into current HP and copy it to little endian wHPBuffer3
ld a, [de]
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
dec de
ld a, [de]
ld [hli], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
inc de
.finish
@@ -5759,26 +5759,26 @@ BattleCommand_Recoil:
inc c
.min_damage
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
dec hl
dec hl
ld a, [hl]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
sub c
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld a, [hl]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
sbc b
ld [hl], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
jr nc, .dont_ko
xor a
ld [hli], a
ld [hl], a
- ld hl, wBuffer5
+ ld hl, wHPBuffer3
ld [hli], a
ld [hl], a
.dont_ko
diff --git a/engine/battle/move_effects/pain_split.asm b/engine/battle/move_effects/pain_split.asm
index 68d7cfb4..e6186f93 100644
--- a/engine/battle/move_effects/pain_split.asm
+++ b/engine/battle/move_effects/pain_split.asm
@@ -16,13 +16,13 @@ BattleCommand_PainSplit:
predef AnimateHPBar
ld hl, wEnemyMonHP
ld a, [hli]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
ld a, [hli]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
call .EnemyShareHP
xor a
ld [wWhichHPBar], a
@@ -35,14 +35,14 @@ BattleCommand_PainSplit:
.PlayerShareHP:
ld a, [hld]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
ld a, [hld]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hld]
ld b, a
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
ld a, [hl]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
dec de
dec de
ld a, [de]
@@ -82,10 +82,10 @@ BattleCommand_PainSplit:
.skip
ld a, c
ld [hld], a
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ld a, b
ld [hli], a
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ret
.ButItFailed:
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index d0f736ec..ee65a29a 100644
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -1785,7 +1785,7 @@ ContinueRevive:
ld [hl], d
inc hl
ld [hl], e
- jp LoadCurHPIntoBuffer5
+ jp LoadCurHPIntoBuffer3
RestoreHealth:
ld a, MON_HP + 1
@@ -1797,7 +1797,7 @@ RestoreHealth:
adc d
ld [hl], a
jr c, .full_hp
- call LoadCurHPIntoBuffer5
+ call LoadCurHPIntoBuffer3
ld a, MON_HP + 1
call GetPartyParamLocation
ld d, h
@@ -1830,21 +1830,21 @@ RemoveHP:
ld [hld], a
ld [hl], a
.okay
- call LoadCurHPIntoBuffer5
+ call LoadCurHPIntoBuffer3
ret
IsMonFainted:
push de
- call LoadMaxHPToBuffer1
- call LoadCurHPToBuffer3
- call LoadHPFromBuffer3
+ call LoadMaxHPIntoBuffer1
+ call LoadCurHPIntoBuffer2
+ call LoadHPFromBuffer2
ld a, d
or e
pop de
ret
IsMonAtFullHealth:
- call LoadHPFromBuffer3
+ call LoadHPFromBuffer2
ld h, d
ld l, e
call LoadHPFromBuffer1
@@ -1854,60 +1854,60 @@ IsMonAtFullHealth:
sbc d
ret
-LoadCurHPIntoBuffer5:
+LoadCurHPIntoBuffer3:
ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld a, [hl]
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ret
-LoadHPIntoBuffer5: ; unreferenced
+LoadHPIntoBuffer3: ; unreferenced
ld a, d
- ld [wBuffer6], a
+ ld [wHPBuffer3 + 1], a
ld a, e
- ld [wBuffer5], a
+ ld [wHPBuffer3], a
ret
-LoadHPFromBuffer5: ; unreferenced
- ld a, [wBuffer6]
+LoadHPFromBuffer3: ; unreferenced
+ ld a, [wHPBuffer3 + 1]
ld d, a
- ld a, [wBuffer5]
+ ld a, [wHPBuffer3]
ld e, a
ret
-LoadCurHPToBuffer3:
+LoadCurHPIntoBuffer2:
ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
- ld [wBuffer4], a
+ ld [wHPBuffer2 + 1], a
ld a, [hl]
- ld [wBuffer3], a
+ ld [wHPBuffer2], a
ret
-LoadHPFromBuffer3:
- ld a, [wBuffer4]
+LoadHPFromBuffer2:
+ ld a, [wHPBuffer2 + 1]
ld d, a
- ld a, [wBuffer3]
+ ld a, [wHPBuffer2]
ld e, a
ret
-LoadMaxHPToBuffer1:
+LoadMaxHPIntoBuffer1:
push hl
ld a, MON_MAXHP
call GetPartyParamLocation
ld a, [hli]
- ld [wBuffer2], a
+ ld [wHPBuffer1 + 1], a
ld a, [hl]
- ld [wBuffer1], a
+ ld [wHPBuffer1], a
pop hl
ret
LoadHPFromBuffer1:
- ld a, [wBuffer2]
+ ld a, [wHPBuffer1 + 1]
ld d, a
- ld a, [wBuffer1]
+ ld a, [wHPBuffer1]
ld e, a
ret
diff --git a/wram.asm b/wram.asm
index 5c08fa08..8af1942c 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1897,13 +1897,10 @@ wEvolvableFlags:: flag_array PARTY_LENGTH
wForceEvolution:: db
UNION
-; unidentified
-wBuffer1:: db
-wBuffer2:: db
-wBuffer3:: db
-wBuffer4:: db
-wBuffer5:: db
-wBuffer6:: db
+; general-purpose HP buffers
+wHPBuffer1:: dw
+wHPBuffer2:: dw
+wHPBuffer3:: dw
NEXTU
; HP bar animations