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
|
DrawPinball: ; 0x17e81
ld a, [wPinballIsVisible]
and a
ret z
ld hl, wBallSpin
ld a, [wBallRotation]
add [hl]
ld [wBallRotation], a
ld a, [wBallXPos + 1]
inc a
ld hl, hSCX
sub [hl]
ld b, a
ld a, [wBallYPos + 1]
inc a
sub $10
ld hl, hSCY
sub [hl]
ld c, a
ld a, [wBallRotation]
srl a
srl a
srl a ; divide wBallRotation by 8 because
srl a ; there are 8 frames of the ball spinning
and $7
add $0
call LoadOAMData
ld a, [hGameBoyColorFlag]
and a
ret nz
ld a, [hGameBoyColorFlag]
and a
ret nz
ld a, [hSGBFlag]
and a
ret nz
ld a, [wd4c5]
inc a
ld hl, hSCX
sub [hl]
ld b, a
ld a, [wd4c6]
inc a
sub $10
ld hl, hSCY
sub [hl]
ld c, a
ld a, [wd4c7]
srl a
srl a
srl a
srl a
and $7
add $0
call LoadOAMData
ld a, [wBallXPos + 1]
ld [wd4c5], a
ld a, [wBallYPos + 1]
ld [wd4c6], a
ld a, [wBallRotation]
ld [wd4c7], a
ret
|