1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
MarowakAnim: ; 708ca (1c:48ca)
; animate the ghost being unveiled as a Marowak
ld a, $e4
ld [rOBP1], a
call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
coord hl, 12, 0
lb bc, 7, 7
call ClearScreenArea
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
; replace ghost pic with Marowak in BG
ld a, MAROWAK
ld [wChangeMonPicEnemyTurnSpecies], a
ld a, $1
ld [H_WHOSETURN], a
callab ChangeMonPic
; alternate between black and light grey 8 times.
; this makes the ghost's body appear to flash
ld d, $80
call FlashSprite8Times
.fadeOutGhostLoop
ld c, 10
call DelayFrames
ld a, [rOBP1]
sla a
sla a
ld [rOBP1], a
jr nz, .fadeOutGhostLoop
call ClearSprites
call CopyMonPicFromBGToSpriteVRAM ; copy Marowak pic from BG to sprite VRAM
ld b, $e4
.fadeInMarowakLoop
ld c, 10
call DelayFrames
ld a, [rOBP1]
srl b
rra
srl b
rra
ld [rOBP1], a
ld a, b
and a
jr nz, .fadeInMarowakLoop
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared
call Delay3
jp ClearSprites
; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
CopyMonPicFromBGToSpriteVRAM: ; 7092a (1c:492a)
ld de, vFrontPic
ld hl, vSprites
ld bc, 7 * 7
call CopyVideoData
ld a, $10
ld [wBaseCoordY], a
ld a, $70
ld [wBaseCoordX], a
ld hl, wOAMBuffer
lb bc, 6, 6
ld d, $8
.oamLoop
push bc
ld a, [wBaseCoordY]
ld e, a
.oamInnerLoop
ld a, e
add $8
ld e, a
ld [hli], a
ld a, [wBaseCoordX]
ld [hli], a
ld a, d
ld [hli], a
ld a, $10 ; use OBP1
ld [hli], a
inc d
dec c
jr nz, .oamInnerLoop
inc d
ld a, [wBaseCoordX]
add $8
ld [wBaseCoordX], a
pop bc
dec b
jr nz, .oamLoop
ret
|