summaryrefslogtreecommitdiff
path: root/engine/overworld/healing_machine.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/healing_machine.asm')
-rwxr-xr-xengine/overworld/healing_machine.asm102
1 files changed, 102 insertions, 0 deletions
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
new file mode 100755
index 00000000..77ff4ccc
--- /dev/null
+++ b/engine/overworld/healing_machine.asm
@@ -0,0 +1,102 @@
+AnimateHealingMachine: ; 70433 (1c:4433)
+ ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7
+ ld hl, $87c0
+ ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03
+ call CopyVideoData
+ ld hl, $cfcb
+ ld a, [hl]
+ push af
+ ld [hl], $ff
+ push hl
+ ld a, [rOBP1] ; $ff49
+ push af
+ ld a, $e0
+ ld [rOBP1], a ; $ff49
+ ld hl, $c384
+ ld de, PokeCenterOAMData ; $44d7
+ call Func_70503
+ ld a, $4
+ ld [wMusicHeaderPointer], a
+ ld a, $ff
+ ld [$c0ee], a
+ call PlaySound
+.asm_70464
+ ld a, [wMusicHeaderPointer]
+ and a
+ jr nz, .asm_70464
+ ld a, [W_NUMINPARTY] ; $d163
+ ld b, a
+.asm_7046e
+ call Func_70503
+ ld a, (SFX_02_4a - SFX_Headers_02) / 3
+ call PlaySound
+ ld c, $1e
+ call DelayFrames
+ dec b
+ jr nz, .asm_7046e
+ ld a, [$c0ef]
+ cp $1f
+ ld [$c0f0], a
+ jr nz, .asm_70495
+ ld a, $ff
+ ld [$c0ee], a
+ call PlaySound
+ ld a, Bank(Func_9876)
+ ld [$c0ef], a
+.asm_70495
+ ld a, MUSIC_PKMN_HEALED
+ ld [$c0ee], a
+ call PlaySound
+ ld d, $28
+ call Func_704f3
+.asm_704a2
+ ld a, [$c026]
+ cp MUSIC_PKMN_HEALED
+ jr z, .asm_704a2
+ ld c, $20
+ call DelayFrames
+ pop af
+ ld [rOBP1], a ; $ff49
+ pop hl
+ pop af
+ ld [hl], a
+ jp UpdateSprites
+
+PokeCenterFlashingMonitorAndHealBall: ; 704b7 (1c:44b7)
+ INCBIN "gfx/pokecenter_ball.2bpp"
+
+PokeCenterOAMData: ; 704d7 (1c:44d7)
+ db $24,$34,$7C,$10 ; heal machine monitor
+ db $2B,$30,$7D,$10 ; pokeballs 1-6
+ db $2B,$38,$7D,$30
+ db $30,$30,$7D,$10
+ db $30,$38,$7D,$30
+ db $35,$30,$7D,$10
+ db $35,$38,$7D,$30
+
+Func_704f3: ; 704f3 (1c:44f3)
+ ld b, $8
+.asm_704f5
+ ld a, [rOBP1] ; $ff49
+ xor d
+ ld [rOBP1], a ; $ff49
+ ld c, $a
+ call DelayFrames
+ dec b
+ jr nz, .asm_704f5
+ ret
+
+Func_70503: ; 70503 (1c:4503)
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ret