ref: 83b516d501bcaee5d08ce22b2f8ade2adf316354
parent: ed7b62c808b51580d2ae72a778a40c69a7889099
parent: 5e4bcfc0b278782dbdfcc5e68365686838741280
author: Bryan Bishop <kanzure@gmail.com>
date: Thu Jan 19 11:21:28 EST 2012
Merge Sanky/pokered (HealParty) hg-commit-id: fc805c8b9c6d
--- a/common.asm
+++ b/common.asm
@@ -3188,7 +3188,7 @@
SECTION "bank3",DATA,BANK[$3]
-INCBIN "baserom.gbc",$C000,$C23D - $C000
+INCBIN "baserom.gbc",$C000,$C23D - $C000
; see also MapHeaderPointers
MapHeaderBanks: ; 423D
@@ -8735,8 +8735,93 @@
db $50
; 0xef7d + 5 bytes
-INCBIN "baserom.gbc",$ef82,$fbd9 - $ef82
+INCBIN "baserom.gbc",$ef82,$f6a5 - $ef82
+HealParty:
+ ld hl, W_PARTYMON1
+ ld de, W_PARTYMON1_HP
+.HealPokemon\@: ; 0xf704
+ ld a, [hli]
+ cp $ff
+ jr z, .DoneHealing\@ ; End if there's no Pokémon
+ push hl
+ push de
+ ld hl, $0003 ; Status offset
+ add hl, de
+ xor a
+ ld [hl], a ; Clean status conditions
+ push de
+ ld b, $4 ; A Pokémon has 4 moves
+.RestorePP\@:
+ ld hl, $0007 ; Move offset
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .HealNext\@ ; Skip if there's no move here
+ dec a
+ ld hl, $001c ; PP offset
+ add hl, de
+ push hl
+ push de
+ push bc
+ ld hl, $4000
+ ld bc, $0006
+ call AddNTimes
+ ld de, $cd6d
+ ld a, $e
+ call FarCopyData
+ ld a, [$cd72]
+ pop bc
+ pop de
+ pop hl
+ inc de
+ push bc
+ ld b, a
+ ld a, [hl]
+ and $c0
+ add b
+ ld [hl], a
+ pop bc
+.HealNext\@:
+ dec b
+ jr nz, .RestorePP\@ ; Continue if there's still moves
+ pop de
+ ld hl, $0021 ; Max HP offset
+ add hl, de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a ; Restore full HP
+ pop de
+ pop hl
+ push hl
+ ld bc, $002c
+ ld h, d
+ ld l, e
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ jr .HealPokemon\@ ; Next Pokémon
+.DoneHealing\@ ; This calls $6606 for each Pokémon in party -- no idea why
+ xor a
+ ld [$cf92], a
+ ld [$d11e], a
+ ld a, [W_NUMINPARTY]
+ ld b, a
+.asm_f711
+ push bc
+ call $6606
+ pop bc
+ ld hl, $cf92
+ inc [hl]
+ dec b
+ jr nz, .asm_f711 ; 0xf71b $f4
+ ret
+
+INCBIN "baserom.gbc",$f71e,$fbd9 - $f71e
+
UnnamedText_fbd9: ; 0xfbd9
TX_FAR _UnnamedText_fbd9
db $50
@@ -29759,7 +29844,7 @@
dbw $0F,$7103
dbw $1E,$5ABA
dbw $03,$7132
- dbw $03,$76A5
+ dbw BANK(HealParty),HealParty
dbw BANK(AttackAnimation),AttackAnimation; 08 play attack animation
dbw $03,$771E
dbw $03,$771E