summaryrefslogtreecommitdiff
path: root/engine/overworld/cable_club_npc.asm
blob: d071eee5b4e6a03215b458c38a7b2a967cfcfb0d (plain)
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
CableClubNPC: ; 71c5 (1:71c5)
	ld hl, CableClubNPCText1
	call PrintText
	ld a, [wd74b]
	bit 5, a
	jp nz, Func_71e1
	ld c, $3c
	call DelayFrames
	ld hl, CableClubNPCText6
	call PrintText
	jp Func_7298

Func_71e1: ; 71e1 (1:71e1)
	ld a, $1
	ld [wMenuJoypadPollCount], a
	ld a, $5a
	ld [wcc47], a
.asm_71eb
	ld a, [$ffaa]
	cp $2
	jr z, .asm_721a ; 0x71ef $29
	cp $1
	jr z, .asm_721a ; 0x71f3 $25
	ld a, $ff
	ld [$ffaa], a
	ld a, $2
	ld [rSB], a
	xor a
	ld [$ffad], a
	ld a, $80
	ld [$ff02], a
	ld a, [wcc47]
	dec a
	ld [wcc47], a
	jr z, .asm_7287 ; 0x720b $7a
	ld a, $1
	ld [rSB], a
	ld a, $81
	ld [$ff02], a
	call DelayFrame
	jr .asm_71eb ; 0x7218 $d1
.asm_721a
	call Func_22ed
	call DelayFrame
	call Func_22ed
	ld c, $32
	call DelayFrames
	ld hl, CableClubNPCText2
	call PrintText
	xor a
	ld [wMenuJoypadPollCount], a
	call YesNoChoice
	ld a, $1
	ld [wMenuJoypadPollCount], a
	ld a, [wCurrentMenuItem]
	and a
	jr nz, .asm_728f ; 0x723e $4f
	callab SaveSAVtoSRAM
	call WaitForSoundToFinish
	ld a, (SFX_02_5d - SFX_Headers_02) / 3
	call PlaySoundWaitForCurrent
	ld hl, CableClubNPCText3
	call PrintText
	ld hl, wcc47
	ld a, $3
	ld [hli], a
	xor a
	ld [hl], a
	ld [$ffa9], a
	ld [wcc42], a
	call Func_227f
	ld hl, wcc47
	ld a, [hli]
	inc a
	jr nz, Func_72a8 ; 0x726b $3b
	ld a, [hl]
	inc a
	jr nz, Func_72a8 ; 0x726f $37
	ld b, $a
.asm_7273
	call DelayFrame
	call Func_22ed
	dec b
	jr nz, .asm_7273 ; 0x727a $f7
	call Func_72d7
	ld hl, CableClubNPCText4
	call PrintText
	jr Func_7298 ; 0x7285 $11
.asm_7287
	ld hl, CableClubNPCText7
	call PrintText
	jr Func_7298 ; 0x728d $9
.asm_728f
	call Func_72d7
	ld hl, CableClubNPCText5
	call PrintText
	; fall through

Func_7298: ; 7298 (1:7298)
	xor a
	ld hl, wcc47
	ld [hli], a
	ld [hl], a
	ld hl, wd72e
	res 6, [hl]
	xor a
	ld [wMenuJoypadPollCount], a
	ret

Func_72a8: ; 72a8 (1:72a8)
	xor a
	ld [hld], a
	ld [hl], a
	ld hl, LinkMenu
	ld b, BANK(LinkMenu)
	jp Bankswitch

CableClubNPCText7: ; 72b3 (1:72b3)
	TX_FAR _CableClubNPCText7
	db "@"

CableClubNPCText1: ; 72b8 (1:72b8)
	TX_FAR _CableClubNPCText1
	db "@"

CableClubNPCText2: ; 72bd (1:72bd)
	TX_FAR _CableClubNPCText2
	db "@"

CableClubNPCText3: ; 72c2 (1:72c2)
	TX_FAR _CableClubNPCText3
	db $a, "@"

CableClubNPCText4: ; 72c8 (1:72c8)
	TX_FAR _CableClubNPCText4
	db "@"

CableClubNPCText5: ; 72cd (1:72cd)
	TX_FAR _CableClubNPCText5
	db "@"

CableClubNPCText6: ; 72d2 (1:72d2)
	TX_FAR _CableClubNPCText6
	db "@"

Func_72d7: ; 72d7 (1:72d7)
	call Delay3
	ld a, $ff
	ld [$ffaa], a
	ld a, $2
	ld [rSB], a
	xor a
	ld [$ffad], a
	ld a, $80
	ld [$ff02], a
	ret