Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/scripts/BillsHouse.asm
1270 views
1
BillsHouse_Script:
2
call EnableAutoTextBoxDrawing
3
ld a, [wBillsHouseCurScript]
4
ld hl, BillsHouse_ScriptPointers
5
jp CallFunctionInTable
6
7
BillsHouse_ScriptPointers:
8
def_script_pointers
9
dw_const BillsHouseDefaultScript, SCRIPT_BILLSHOUSE_DEFAULT
10
dw_const BillsHousePokemonWalkToMachineScript, SCRIPT_BILLSHOUSE_POKEMON_WALK_TO_MACHINE
11
dw_const BillsHousePokemonEntersMachineScript, SCRIPT_BILLSHOUSE_POKEMON_ENTERS_MACHINE
12
dw_const BillsHouseBillExitsMachineScript, SCRIPT_BILLSHOUSE_BILL_EXITS_MACHINE
13
dw_const BillsHouseCleanupScript, SCRIPT_BILLSHOUSE_CLEANUP
14
dw_const BillsHousePCScript, SCRIPT_BILLSHOUSE_PC
15
16
BillsHouseDefaultScript:
17
ret
18
19
BillsHousePokemonWalkToMachineScript:
20
ld a, [wSpritePlayerStateData1FacingDirection]
21
and a ; cp SPRITE_FACING_DOWN
22
ld de, .PokemonWalkToMachineMovement
23
jr nz, .notDown
24
ld de, .PokemonWalkAroundPlayerMovement
25
.notDown
26
ld a, BILLSHOUSE_BILL_POKEMON
27
ldh [hSpriteIndex], a
28
call MoveSprite
29
ld a, SCRIPT_BILLSHOUSE_POKEMON_ENTERS_MACHINE
30
ld [wBillsHouseCurScript], a
31
ret
32
33
.PokemonWalkToMachineMovement:
34
db NPC_MOVEMENT_UP
35
db NPC_MOVEMENT_UP
36
db NPC_MOVEMENT_UP
37
db -1 ; end
38
39
; make Bill walk around the player
40
.PokemonWalkAroundPlayerMovement:
41
db NPC_MOVEMENT_RIGHT
42
db NPC_MOVEMENT_UP
43
db NPC_MOVEMENT_UP
44
db NPC_MOVEMENT_LEFT
45
db NPC_MOVEMENT_UP
46
db -1 ; end
47
48
BillsHousePokemonEntersMachineScript:
49
ld a, [wStatusFlags5]
50
bit BIT_SCRIPTED_NPC_MOVEMENT, a
51
ret nz
52
ld a, HS_BILL_POKEMON
53
ld [wMissableObjectIndex], a
54
predef HideObject
55
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
56
xor a
57
ld [wJoyIgnore], a
58
ld a, SCRIPT_BILLSHOUSE_BILL_EXITS_MACHINE
59
ld [wBillsHouseCurScript], a
60
ret
61
62
BillsHouseBillExitsMachineScript:
63
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
64
ret z
65
ld a, PAD_CTRL_PAD
66
ld [wJoyIgnore], a
67
ld a, BILLSHOUSE_BILL1
68
ld [wSpriteIndex], a
69
ld a, $c
70
ldh [hSpriteScreenYCoord], a
71
ld a, $40
72
ldh [hSpriteScreenXCoord], a
73
ld a, 6
74
ldh [hSpriteMapYCoord], a
75
ld a, 5
76
ldh [hSpriteMapXCoord], a
77
call SetSpritePosition1
78
ld a, HS_BILL_1
79
ld [wMissableObjectIndex], a
80
predef ShowObject
81
ld c, 8
82
call DelayFrames
83
ld a, BILLSHOUSE_BILL1
84
ldh [hSpriteIndex], a
85
ld de, BillExitMachineMovement
86
call MoveSprite
87
ld a, SCRIPT_BILLSHOUSE_CLEANUP
88
ld [wBillsHouseCurScript], a
89
ret
90
91
BillExitMachineMovement:
92
db NPC_MOVEMENT_DOWN
93
db NPC_MOVEMENT_RIGHT
94
db NPC_MOVEMENT_RIGHT
95
db NPC_MOVEMENT_RIGHT
96
db NPC_MOVEMENT_DOWN
97
db -1 ; end
98
99
BillsHouseCleanupScript:
100
ld a, [wStatusFlags5]
101
bit BIT_SCRIPTED_NPC_MOVEMENT, a
102
ret nz
103
xor a
104
ld [wJoyIgnore], a
105
SetEvent EVENT_MET_BILL_2 ; this event seems redundant
106
SetEvent EVENT_MET_BILL
107
ld a, SCRIPT_BILLSHOUSE_DEFAULT
108
ld [wBillsHouseCurScript], a
109
ret
110
111
BillsHousePCScript:
112
ld a, TEXT_BILLSHOUSE_ACTIVATE_PC
113
ldh [hTextID], a
114
call DisplayTextID
115
ld a, SCRIPT_BILLSHOUSE_DEFAULT
116
ld [wBillsHouseCurScript], a
117
ret
118
119
BillsHouse_TextPointers:
120
def_text_pointers
121
dw_const BillsHouseBillPokemonText, TEXT_BILLSHOUSE_BILL_POKEMON
122
dw_const BillsHouseBillSSTicketText, TEXT_BILLSHOUSE_BILL_SS_TICKET
123
dw_const BillsHouseBillCheckOutMyRarePokemonText, TEXT_BILLSHOUSE_BILL_CHECK_OUT_MY_RARE_POKEMON
124
dw_const BillsHouseActivatePCScript, TEXT_BILLSHOUSE_ACTIVATE_PC
125
126
BillsHouseActivatePCScript:
127
script_bills_pc
128
129
BillsHouseBillPokemonText:
130
text_asm
131
ld hl, .ImNotAPokemonText
132
call PrintText
133
call YesNoChoice
134
ld a, [wCurrentMenuItem]
135
and a
136
jr nz, .answered_no
137
.use_machine
138
ld hl, .UseSeparationSystemText
139
call PrintText
140
ld a, SCRIPT_BILLSHOUSE_POKEMON_WALK_TO_MACHINE
141
ld [wBillsHouseCurScript], a
142
jr .text_script_end
143
.answered_no
144
ld hl, .NoYouGottaHelpText
145
call PrintText
146
jr .use_machine
147
.text_script_end
148
jp TextScriptEnd
149
150
.ImNotAPokemonText:
151
text_far _BillsHouseBillImNotAPokemonText
152
text_end
153
154
.UseSeparationSystemText:
155
text_far _BillsHouseBillUseSeparationSystemText
156
text_end
157
158
.NoYouGottaHelpText:
159
text_far _BillsHouseBillNoYouGottaHelpText
160
text_end
161
162
BillsHouseBillSSTicketText:
163
text_asm
164
CheckEvent EVENT_GOT_SS_TICKET
165
jr nz, .got_ss_ticket
166
ld hl, .ThankYouText
167
call PrintText
168
lb bc, S_S_TICKET, 1
169
call GiveItem
170
jr nc, .bag_full
171
ld hl, .SSTicketReceivedText
172
call PrintText
173
SetEvent EVENT_GOT_SS_TICKET
174
ld a, HS_CERULEAN_GUARD_1
175
ld [wMissableObjectIndex], a
176
predef ShowObject
177
ld a, HS_CERULEAN_GUARD_2
178
ld [wMissableObjectIndex], a
179
predef HideObject
180
.got_ss_ticket
181
ld hl, .WhyDontYouGoInsteadOfMeText
182
call PrintText
183
jr .text_script_end
184
.bag_full
185
ld hl, .SSTicketNoRoomText
186
call PrintText
187
.text_script_end
188
jp TextScriptEnd
189
190
.ThankYouText:
191
text_far _BillsHouseBillThankYouText
192
text_end
193
194
.SSTicketReceivedText:
195
text_far _SSTicketReceivedText
196
sound_get_key_item
197
text_promptbutton
198
text_end
199
200
.SSTicketNoRoomText:
201
text_far _SSTicketNoRoomText
202
text_end
203
204
.WhyDontYouGoInsteadOfMeText:
205
text_far _BillsHouseBillWhyDontYouGoInsteadOfMeText
206
text_end
207
208
BillsHouseBillCheckOutMyRarePokemonText:
209
text_asm
210
ld hl, .Text
211
call PrintText
212
jp TextScriptEnd
213
214
.Text:
215
text_far _BillsHouseBillCheckOutMyRarePokemonText
216
text_end
217
218