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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
BillsHouse_Script:
call EnableAutoTextBoxDrawing
ld a, [wBillsHouseCurScript]
ld hl, BillsHouse_ScriptPointers
jp CallFunctionInTable
BillsHouse_ScriptPointers:
def_script_pointers
dw_const BillsHouseDefaultScript, SCRIPT_BILLSHOUSE_DEFAULT
dw_const BillsHousePokemonWalkToMachineScript, SCRIPT_BILLSHOUSE_POKEMON_WALK_TO_MACHINE
dw_const BillsHousePokemonEntersMachineScript, SCRIPT_BILLSHOUSE_POKEMON_ENTERS_MACHINE
dw_const BillsHouseBillExitsMachineScript, SCRIPT_BILLSHOUSE_BILL_EXITS_MACHINE
dw_const BillsHouseCleanupScript, SCRIPT_BILLSHOUSE_CLEANUP
dw_const BillsHousePCScript, SCRIPT_BILLSHOUSE_PC
BillsHouseDefaultScript:
ret
BillsHousePokemonWalkToMachineScript:
ld a, [wSpritePlayerStateData1FacingDirection]
and a ; cp SPRITE_FACING_DOWN
ld de, .PokemonWalkToMachineMovement
jr nz, .notDown
ld de, .PokemonWalkAroundPlayerMovement
.notDown
ld a, BILLSHOUSE_BILL_POKEMON
ldh [hSpriteIndex], a
call MoveSprite
ld a, SCRIPT_BILLSHOUSE_POKEMON_ENTERS_MACHINE
ld [wBillsHouseCurScript], a
ret
.PokemonWalkToMachineMovement:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1 ; end
; make Bill walk around the player
.PokemonWalkAroundPlayerMovement:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db -1 ; end
BillsHousePokemonEntersMachineScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, TOGGLE_BILL_POKEMON
ld [wToggleableObjectIndex], a
predef HideObject
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
xor a
ld [wJoyIgnore], a
ld a, SCRIPT_BILLSHOUSE_BILL_EXITS_MACHINE
ld [wBillsHouseCurScript], a
ret
BillsHouseBillExitsMachineScript:
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, BILLSHOUSE_BILL1
ld [wSpriteIndex], a
ld a, $c
ldh [hSpriteScreenYCoord], a
ld a, $40
ldh [hSpriteScreenXCoord], a
ld a, 6
ldh [hSpriteMapYCoord], a
ld a, 5
ldh [hSpriteMapXCoord], a
call SetSpritePosition1
ld a, TOGGLE_BILL_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
ld a, BILLSHOUSE_BILL1
ldh [hSpriteIndex], a
ld de, .BillExitMachineMovement
call MoveSprite
ld a, SCRIPT_BILLSHOUSE_CLEANUP
ld [wBillsHouseCurScript], a
ret
.BillExitMachineMovement:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db -1 ; end
BillsHouseCleanupScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
xor a
ld [wJoyIgnore], a
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
SetEvent EVENT_MET_BILL
ld a, SCRIPT_BILLSHOUSE_DEFAULT
ld [wBillsHouseCurScript], a
ret
BillsHousePCScript:
ld a, TEXT_BILLSHOUSE_ACTIVATE_PC
ldh [hTextID], a
call DisplayTextID
ld a, SCRIPT_BILLSHOUSE_DEFAULT
ld [wBillsHouseCurScript], a
ret
BillsHouse_TextPointers:
def_text_pointers
dw_const BillsHouseBillPokemonText, TEXT_BILLSHOUSE_BILL_POKEMON
dw_const BillsHouseBillSSTicketText, TEXT_BILLSHOUSE_BILL_SS_TICKET
dw_const BillsHouseBillCheckOutMyRarePokemonText, TEXT_BILLSHOUSE_BILL_CHECK_OUT_MY_RARE_POKEMON
dw_const BillsHouseActivatePCScript, TEXT_BILLSHOUSE_ACTIVATE_PC
BillsHouseActivatePCScript:
script_bills_pc
BillsHouseBillPokemonText:
text_asm
ld hl, .ImNotAPokemonText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .answered_no
.use_machine
ld hl, .UseSeparationSystemText
call PrintText
ld a, SCRIPT_BILLSHOUSE_POKEMON_WALK_TO_MACHINE
ld [wBillsHouseCurScript], a
jr .text_script_end
.answered_no
ld hl, .NoYouGottaHelpText
call PrintText
jr .use_machine
.text_script_end
jp TextScriptEnd
.ImNotAPokemonText:
text_far _BillsHouseBillImNotAPokemonText
text_end
.UseSeparationSystemText:
text_far _BillsHouseBillUseSeparationSystemText
text_end
.NoYouGottaHelpText:
text_far _BillsHouseBillNoYouGottaHelpText
text_end
BillsHouseBillSSTicketText:
text_asm
CheckEvent EVENT_GOT_SS_TICKET
jr nz, .got_ss_ticket
ld hl, .ThankYouText
call PrintText
lb bc, S_S_TICKET, 1
call GiveItem
jr nc, .bag_full
ld hl, .SSTicketReceivedText
call PrintText
SetEvent EVENT_GOT_SS_TICKET
ld a, TOGGLE_CERULEAN_GUARD_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, TOGGLE_CERULEAN_GUARD_2
ld [wToggleableObjectIndex], a
predef HideObject
.got_ss_ticket
ld hl, .WhyDontYouGoInsteadOfMeText
call PrintText
jr .text_script_end
.bag_full
ld hl, .SSTicketNoRoomText
call PrintText
.text_script_end
jp TextScriptEnd
.ThankYouText:
text_far _BillsHouseBillThankYouText
text_end
.SSTicketReceivedText:
text_far _SSTicketReceivedText
sound_get_key_item
text_promptbutton
text_end
.SSTicketNoRoomText:
text_far _SSTicketNoRoomText
text_end
.WhyDontYouGoInsteadOfMeText:
text_far _BillsHouseBillWhyDontYouGoInsteadOfMeText
text_end
BillsHouseBillCheckOutMyRarePokemonText:
text_asm
ld hl, .Text
call PrintText
jp TextScriptEnd
.Text:
text_far _BillsHouseBillCheckOutMyRarePokemonText
text_end
|