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
|
CheckDiglettBonusStageGameObjectCollisions: ; 0x19ab3
call CheckDiglettBonusStageDiglettHeadsCollision
call CheckDiglettBonusStageDugtrioCollision
ret
CheckDiglettBonusStageDiglettHeadsCollision: ; 0x19aba
ld a, [wTriggeredGameObject]
inc a
jr nz, .asm_19b16
ld a, [wd73b]
bit 7, a
jr nz, .asm_19b16
ld a, [wIsBallColliding]
and a
ret z ; is a collision happening?
ld a, [wCurCollisionAttribute]
sub $19
ret c ; is the pinball colliding with a Diglett head?
cp $33
ret nc
ld c, a
ld b, $0
ld hl, Data_19b18
add hl, bc
ld a, [hl]
cp $a
jr nc, .asm_19aed
ld a, [wBallXPos + 1]
cp $48
ld a, $11
jr nc, .asm_19af7
xor a
jr .asm_19af7
.asm_19aed
ld a, [wBallXPos + 1]
cp $68
ld a, $11
jr nc, .asm_19af7
xor a
.asm_19af7
add [hl]
ld [wTriggeredGameObjectIndex], a
add $0
ld [wTriggeredGameObject], a
ld b, a
ld hl, wd73b
ld [hl], $0
ld a, [wPreviousTriggeredGameObject]
cp b
jr z, .asm_19b16
ld a, [wTriggeredGameObjectIndex]
ld [hli], a
ld a, [wTriggeredGameObject]
ld [hl], a
scf
ret
.asm_19b16
and a
ret
Data_19b18:
db $01, $01, $01
db $02, $02, $02
db $03, $03, $03
db $04, $04, $04
db $05, $05, $05
db $06, $06, $06
db $07, $07, $07
db $08, $08, $08
db $09, $09, $09
db $0A, $0A, $0A
db $0B, $0B, $0B
db $0C, $0C, $0C
db $0D, $0D, $0D
db $0E, $0E, $0E
db $0F, $0F, $0F
db $10, $10, $10
db $11, $11, $11
CheckDiglettBonusStageDugtrioCollision: ; 0x19b4b
ld a, [wTriggeredGameObject]
inc a
jr nz, .asm_19b86
ld a, [wd75f]
bit 7, a
jr nz, .asm_19b86
ld a, [wIsBallColliding]
and a
ret z
ld a, [wCurCollisionAttribute]
sub $14
ret c
cp $5
ret nc
ld a, $1
ld [wTriggeredGameObjectIndex], a
add $1f
ld [wTriggeredGameObject], a
ld b, a
ld hl, wd75f
ld [hl], $0
ld a, [wPreviousTriggeredGameObject]
cp b
jr z, .asm_19b86
ld a, [wTriggeredGameObjectIndex]
ld [hli], a
ld a, [wTriggeredGameObject]
ld [hl], a
scf
ret
.asm_19b86
and a
ret
|