diff options
-rw-r--r-- | engine/battle/core.asm | 68 | ||||
-rw-r--r-- | engine/battle/effect_commands.asm | 90 | ||||
-rw-r--r-- | engine/battle/move_effects/pain_split.asm | 20 | ||||
-rw-r--r-- | engine/items/item_effects.asm | 54 | ||||
-rw-r--r-- | wram.asm | 11 |
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 @@ -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 |