summaryrefslogtreecommitdiff
path: root/engine/overworld/emotion_bubbles.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/emotion_bubbles.asm')
-rwxr-xr-xengine/overworld/emotion_bubbles.asm68
1 files changed, 68 insertions, 0 deletions
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
new file mode 100755
index 00000000..b480c06d
--- /dev/null
+++ b/engine/overworld/emotion_bubbles.asm
@@ -0,0 +1,68 @@
+PrintEmotionBubble: ; 17c47 (5:7c47)
+ ld a, [$cd50]
+ ld c, a
+ ld b, $0
+ ld hl, EmotionBubblesPointerTable ; $7caf
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $8f80
+ ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04
+ call CopyVideoData
+ ld a, [$cfcb]
+ push af
+ ld a, $ff
+ ld [$cfcb], a
+ ld a, [$d736]
+ bit 6, a
+ ld hl, $c38f
+ ld de, $c39f
+ jr z, .asm_17c7a
+ ld hl, $c37f
+ ld de, $c38f
+.asm_17c7a
+ ld bc, $90
+.asm_17c7d
+ ld a, [hl]
+ ld [de], a
+ dec hl
+ dec de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_17c7d
+ ld hl, $c104
+ ld a, [$cd4f]
+ swap a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld b, a
+ inc hl
+ ld a, [hl]
+ add $8
+ ld c, a
+ ld de, EmotionBubblesOAM ; $7cb5
+ xor a
+ call WriteOAMBlock
+ ld c, $3c
+ call DelayFrames
+ pop af
+ ld [$cfcb], a
+ call DelayFrame
+ jp UpdateSprites
+
+EmotionBubblesPointerTable: ; 17caf (5:7caf)
+ dw EmotionBubbles
+ dw EmotionBubbles + $40
+ dw EmotionBubbles + $80
+
+EmotionBubblesOAM: ; 17cb5 (5:7cb5)
+ db $F8,$00,$F9,$00
+ db $FA,$00,$FB,$00
+
+EmotionBubbles: ; 17cbd (5:7cbd)
+ INCBIN "gfx/emotion_bubbles.w16.2bpp"