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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
EvolveMon: ; 7bde9 (1e:7de9)
push hl
push de
push bc
ld a, [wcf91]
push af
ld a, [wd0b5]
push af
xor a
ld [wLowHealthAlarm], a
ld [wc02a], a
dec a
ld [wc0ee], a
call PlaySound
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, (SFX_08_3c - SFX_Headers_08) / 3
call PlaySound
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld [hTilesetType], a
ld a, [wHPBarMaxHP]
ld [wcf1d], a
ld c, $0
call EvolutionSetWholeScreenPalette
ld a, [wHPBarMaxHP + 1]
ld [wcf91], a
ld [wd0b5], a
call Evolution_LoadPic
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
call CopyVideoData
ld a, [wHPBarMaxHP]
ld [wcf91], a
ld [wd0b5], a
call Evolution_LoadPic
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wHPBarMaxHP]
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
ld a, MUSIC_SAFARI_ZONE
call PlayMusic
ld c, 80
call DelayFrames
ld c, $1
call EvolutionSetWholeScreenPalette
ld bc, $110
.asm_7be63
push bc
call Evolution_CheckForCancel
jr c, .evolutionCancelled
call Func_7bec2
pop bc
inc b
dec c
dec c
jr nz, .asm_7be63
xor a
ld [wHPBarOldHP + 1], a
ld a, $31
ld [wHPBarOldHP], a
call Func_7bed6
ld a, [wHPBarMaxHP + 1]
.afterCancellation
ld [wcf1d], a
ld a, $ff
ld [wc0ee], a
call PlaySound
ld a, [wcf1d]
call PlayCry
ld c, $0
call EvolutionSetWholeScreenPalette
pop af
ld [wd0b5], a
pop af
ld [wcf91], a
pop bc
pop de
pop hl
ld a, [wHPBarOldHP + 1]
and a
ret z
scf
ret
.evolutionCancelled
pop bc
ld a, $1
ld [wHPBarOldHP + 1], a
ld a, [wHPBarMaxHP]
jr .afterCancellation
EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4)
ld b, $b
jp GoPAL_SET
Evolution_LoadPic: ; 7beb9 (1e:7eb9)
call GetMonHeader
hlCoord 7, 2
jp LoadFlippedFrontSpriteByMonIndex
Func_7bec2: ; 7bec2 (1e:7ec2)
ld a, $31
ld [wHPBarOldHP], a
call Func_7bed6
ld a, $cf
ld [wHPBarOldHP], a
call Func_7bed6
dec b
jr nz, Func_7bec2
ret
Func_7bed6: ; 7bed6 (1e:7ed6)
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a
hlCoord 7, 2
ld bc, $707
ld de, $d
.asm_7bee3
push bc
.asm_7bee4
ld a, [wHPBarOldHP]
add [hl]
ld [hli], a
dec c
jr nz, .asm_7bee4
pop bc
add hl, de
dec b
jr nz, .asm_7bee3
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
pop bc
ret
Evolution_CheckForCancel: ; 7befa (1e:7efa)
call DelayFrame
push bc
call JoypadLowSensitivity
ld a, [hJoy5]
pop bc
and B_BUTTON
jr nz, .pressedB
.notAllowedToCancel
dec c
jr nz, Evolution_CheckForCancel
and a
ret
.pressedB
ld a, [wForceEvolution]
and a
jr nz, .notAllowedToCancel
scf
ret
|