Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_dunes_08b_room_controller_Step_0

(view raw script w/o annotations or w/e)
1
var mo = 1615;
2
var stand = 1618;
3
switch (scene)
4
{
5
    case 0:
6
        if (global.dunes_flag[3] == 0)
7
        {
8
            if (obj_pl.y < 320)
9
            {
10
                scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() { global.cutscene = true; obj_pl.state = scr_frozen_state; obj_pl.image_index = 0; obj_pl.image_speed = 0; }
();
11
                scr_audio_fade
scr_audio_fade

function scr_audio_fade(arg0, arg1) { var snd = arg0; var fade_len = arg1; with (obj_radio) { audio_other_fade = true; audio_to_fade = snd; audio_fade_length = fade_len; } }
(obj_radio.current_song, 500);
12
                scene++;
13
            }
14
        }
15
        else
16
        {
17
            with (stand)
18
            {
19
                if (scr_interact
scr_interact

function scr_interact() { if (distance_to_object(obj_pl) < 20 && obj_pl.state == scr_normal_state) { var pl_dir = obj_pl.direction; var pl_x = 0; var pl_y = 0; var check_distance_x = 0; var check_distance_y = 0; switch (pl_dir) { case 0: pl_x = obj_pl.bbox_right; pl_y = obj_pl.bbox_top + 1; check_distance_x = 20; break; case 180: pl_x = obj_pl.bbox_left; pl_y = obj_pl.bbox_top + 1; check_distance_x = -20; break; case 90: pl_x = obj_pl.x; pl_y = obj_pl.bbox_top; check_distance_y = -20; break; case 270: pl_x = obj_pl.x; pl_y = obj_pl.bbox_bottom; check_distance_y = 20; break; } if (collision_line_first(pl_x, pl_y, pl_x + check_distance_x, pl_y + check_distance_y, id, false, false)) return true; } }
() && keyboard_multicheck_pressed(0))
20
                    other.scene = 24;
21
            }
22
        }
23
        break;
24
    case 1:
25
        scr_camera_move
scr_camera_move

function scr_camera_move(arg0, arg1, arg2) { if (!instance_exists(obj_camera)) { instance_create(__view_get(e__VW.Object, 0).x, __view_get(e__VW.Object, 0).y, obj_camera); __view_set(e__VW.Object, 0, obj_camera); } else { obj_camera.x = __view_get(e__VW.Object, 0).x; obj_camera.y = __view_get(e__VW.Object, 0).y; __view_set(e__VW.Object, 0, obj_camera); } obj_camera.move = true; obj_camera.xx = arg0; obj_camera.yy = arg1; obj_camera.spd = arg2; if (abs(arg0 - obj_camera.x) <= arg2 && abs(arg1 - obj_camera.y) <= arg2) return true; else return false; } enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(obj_pl.x, 280, 1);
26
        timer = 60;
27
        scene++;
28
        break;
29
    case 2:
30
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
31
            exit;
32
        with (obj_radio)
33
        {
34
            bgm = 164;
35
            global.radio_restart = true;
36
        }
37
        instance_create(200, 460, obj_dunes_08b_mo);
38
        with (mo)
39
        {
40
            x_dest[0] = x;
41
            y_dest[0] = 370;
42
            npc_dynamic_depth = false;
43
            depth = -room_height;
44
        }
45
        timer = 25;
46
        scene++;
47
        break;
48
    case 3:
49
        with (mo)
50
        {
51
            if (npc_arrived)
52
            {
53
                with (other)
54
                {
55
                    if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
56
                        exit;
57
                }
58
                path_start(pt_small_jump, 4, path_action_stop, false);
59
                audio_play_sound(snd_playerjump, 1, 0);
60
                instance_create(x, y - 29, obj_cutscene_ex);
61
                other.timer = 30;
62
                other.scene++;
63
            }
64
        }
65
        break;
66
    case 4:
67
        if (instance_exists(obj_cutscene_ex))
68
            obj_cutscene_ex.y = mo.y - 29;
69
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
70
            exit;
71
        instance_destroy(obj_cutscene_ex);
72
        with (mo)
73
        {
74
            image_speed = 0.4;
75
            image_index = 0;
76
            action_sprite = true;
77
            sprite_index = spr_mo_dunes_sleeves;
78
            other.scene++;
79
        }
80
        break;
81
    case 5:
82
        with (mo)
83
        {
84
            if (floor(image_index) == 4 || floor(image_index) == 11)
85
                audio_play_sound(snd_fabric_rip, 1, 0);
86
            if (floor(image_index) == 20)
87
            {
88
                if (!audio_is_playing(snd_mo_pop))
89
                    audio_play_sound(snd_mo_pop, 1, 0);
90
            }
91
            if (on_animation_end())
92
            {
93
                action_sprite = false;
94
                up_sprite = 958;
95
                right_sprite = 960;
96
                down_sprite = 962;
97
                left_sprite = 961;
98
                up_sprite_idle = 964;
99
                right_sprite_idle = 960;
100
                down_sprite_idle = 963;
101
                left_sprite_idle = 961;
102
                other.scene++;
103
            }
104
        }
105
        break;
106
    case 6:
107
        with (mo)
108
        {
109
            x_dest[0] = x;
110
            y_dest[0] = 460;
111
            actor_speed = 5;
112
            can_walk = true;
113
        }
114
        scene++;
115
        break;
116
    case 7:
117
        with (mo)
118
        {
119
            if (npc_arrived)
120
            {
121
                x = -15;
122
                y = 250;
123
                action_sprite = true;
124
                can_walk = false;
125
                hsp = 6;
126
                sprite_index = spr_mo_slide_dunes;
127
                audio_play_sound(snd_mo_slide, 1, 0);
128
                npc_dynamic_depth = true;
129
                other.scene++;
130
            }
131
        }
132
        break;
133
    case 8:
134
        with (mo)
135
        {
136
            var xtarget = 160;
137
            if (global.route == 3)
138
                xtarget = 200;
139
            if (hsp > 0)
140
            {
141
                if (x > (xtarget - 175))
142
                    hsp -= 0.1;
143
                x += hsp;
144
            }
145
            if (x > xtarget)
146
            {
147
                action_sprite = false;
148
                npc_direction = "down";
149
                x = xtarget;
150
                other.timer = 15;
151
                other.scene++;
152
            }
153
        }
154
        break;
155
    case 9:
156
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
157
            exit;
158
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
159
        if (global.route != 3)
160
        {
161
            with (msg)
162
            {
163
                position = 0;
164
                talker[0] = mo;
165
                message[0] = "* Bam!";
166
                message[1] = "* Guess who it is?";
167
                message[2] = "* That's right! It's Mo!";
168
                message[3] = "* Long time no see!";
169
                message[4] = "* How have ya been? Don't answer#  that, we don't have the time.";
170
                message[5] = "* I'm here to make you a BRAND.#  NEW. OFFER!";
171
                message[6] = "* A hot climate calls for a hot#  item!";
172
                message[7] = "* Check it!";
173
            }
174
            scene++;
175
        }
176
        else
177
        {
178
            with (msg)
179
            {
180
                position = 0;
181
                talker[0] = mo;
182
                message[0] = "* Bam! Wam! Shang-a-lang!";
183
                message[1] = "* It's Mo time!";
184
                message[2] = "* And you know what they say:";
185
                message[3] = "* There's no time like MO TIME!";
186
                message[4] = "* Wait...";
187
                message[5] = "* You're that uh... that human#  from Snowdin.";
188
                message[6] = "* There's some pretty nasty#  rumors going on about you...";
189
                if (message_current == 0)
190
                    message_check = 0;
191
                if (message_current == 4 && message_check < 4)
192
                {
193
                    scr_music_sudden_stop
scr_music_sudden_stop

function scr_music_sudden_stop(arg0, arg1, arg2) { with (instance_create(0, 0, obj_audio_sudden_stop_helper)) { audio_to_fade = arg0; fade_strength = arg1 / 100; audio_stop = arg2; if (audio_stop == false) audio_resume_sound(arg0); } }
(164, 3, 1);
194
                    message_check = 4;
195
                    obj_dunes_08b_mo.down_sprite_idle = 3352;
196
                    other.scene = 9.1;
197
                    other.timer = 45;
198
                }
199
            }
200
        }
201
        break;
202
    case 9.1:
203
        if (global.dialogue_open || !scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
204
            exit;
205
        if (obj_dunes_08b_mo.down_sprite != 963)
206
        {
207
            obj_dunes_08b_mo.down_sprite_idle = 963;
208
            scr_music_sudden_stop
scr_music_sudden_stop

function scr_music_sudden_stop(arg0, arg1, arg2) { with (instance_create(0, 0, obj_audio_sudden_stop_helper)) { audio_to_fade = arg0; fade_strength = arg1 / 100; audio_stop = arg2; if (audio_stop == false) audio_resume_sound(arg0); } }
(164, 10, false);
209
        }
210
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
211
        with (msg)
212
        {
213
            position = 0;
214
            talker[0] = mo;
215
            message[0] = "* But come on! We've all#  committed a few felonies in our#  time, right?";
216
            message[1] = "* For me, a pinch of petty#  theft, a sprinkle of tax#  fraud... Diet crime!";
217
            message[2] = "* For you, disturbing the peace,#  battery, several...#  homicides...";
218
            message[3] = "* ALLEGEDLY!";
219
            message[4] = "* Who's got proof, right?#  Gossip's gotta gossip!";
220
            message[5] = "* ...";
221
            message[6] = "* So, you're probably thinkin'#  “What's this handsome cat#  selling???”";
222
            message[7] = "* First of all, I ain't a cat#  but I do appreciate the#  compliment!";
223
            message[8] = "* I had this whole spiel about#  “Water” but, hey, for my best#  customer?";
224
            message[9] = "* I'll skip RIGHT to the premium#  inventory!";
225
            message[10] = "* Check it!";
226
        }
227
        scene = 9.2;
228
        break;
229
    case 9.2:
230
        if (!global.dialogue_open && cutscene_npc_action_sprite(1615, 980, 0.25, false, 0, 303, 2))
231
            scene = 9.3;
232
        break;
233
    case 9.3:
234
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
235
            exit;
236
        stand = instance_create(-60, 240, obj_dunes_08b_stand);
237
        stand.hsp = 8.7;
238
        audio_play_sound(snd_mo_stand_depart, 1, 0);
239
        audio_resume_sound(obj_radio.current_song);
240
        scene = 9.4;
241
        break;
242
    case 9.4:
243
        with (stand)
244
        {
245
            if (hsp > 0)
246
            {
247
                hsp -= 0.1;
248
                x += hsp;
249
            }
250
            if (x > 200)
251
            {
252
                x = 200;
253
                other.scene = 9.5;
254
            }
255
        }
256
        break;
257
    case 9.5:
258
        if (cutscene_npc_walk(1615, 240, obj_dunes_08b_mo.y, 2, "y", "down", -4, 205, 230))
259
            scene = 23;
260
        break;
261
    case 10:
262
        if (global.dialogue_open)
263
            exit;
264
        with (mo)
265
        {
266
            action_sprite = true;
267
            image_speed = 0.4;
268
            image_index = 0;
269
            sprite_index = spr_mo_dunes_water;
270
            other.scene++;
271
        }
272
        obj_dunes_08b_dispenser.image_index = 1;
273
        break;
274
    case 11:
275
        with (mo)
276
        {
277
            if (floor(image_index) == 7)
278
            {
279
                if (!audio_is_playing(snd_tarpdrop))
280
                    audio_play_sound(snd_tarpdrop, 1, 0);
281
            }
282
            if (on_animation_end())
283
            {
284
                instance_create(mo.x, mo.y, obj_dunes_08b_mo_tarp);
285
                action_sprite = false;
286
                other.scene++;
287
            }
288
        }
289
        break;
290
    case 12:
291
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
292
        with (msg)
293
        {
294
            position = 0;
295
            ch_msg = 4;
296
            ch[1] = "Yes";
297
            ch[2] = "No";
298
            talker[0] = mo;
299
            message[0] = "* Thaaat's right!";
300
            message[1] = "* I went all out this time. This#  is a real delicacy 'round here!";
301
            message[2] = "* It's called WATER. Catchy name,#  I know!";
302
            message[3] = "* Lucky for you, I'm giving out#  free samples!";
303
            message[4] = "* Want a glass?";
304
            if (outcome == 1)
305
            {
306
                message[5] = "* Comin' right up!";
307
                other.scene++;
308
            }
309
            if (outcome == 2)
310
            {
311
                message[5] = "* Oh, come on, buddy!";
312
                message[6] = "* Your tongue must be as dry as#  the ground!";
313
                message[7] = "* Let me treat ya!";
314
                other.scene++;
315
            }
316
        }
317
        break;
318
    case 13:
319
        if (global.dialogue_open)
320
            exit;
321
        with (mo)
322
        {
323
            x_dest[0] = x;
324
            y_dest[0] = 220;
325
            x_dest[1] = 232;
326
            y_dest[1] = 252;
327
            actor_speed = 2;
328
            can_walk = true;
329
            other.scene++;
330
        }
331
        break;
332
    case 14:
333
        with (mo)
334
        {
335
            if (!npc_arrived)
336
                exit;
337
            action_sprite = true;
338
            image_speed = 0.4;
339
            image_index = 0;
340
            sprite_index = spr_mo_dunes_dispense;
341
            obj_dunes_08b_dispenser.image_index = 2;
342
            instance_create(199, 269, part_steam_mo);
343
            other.scene++;
344
        }
345
        break;
346
    case 15:
347
        with (mo)
348
        {
349
            if (floor(image_index) == 7)
350
            {
351
                if (!audio_is_playing(snd_mo_kicks_the_bucket))
352
                    audio_play_sound(snd_mo_kicks_the_bucket, 1, 0);
353
            }
354
            if (floor(image_index) == 16)
355
            {
356
                if (!audio_is_playing(snd_switch))
357
                    audio_play_sound(snd_switch, 1, 0);
358
            }
359
            if (floor(image_index) == 59)
360
                audio_pause_sound(obj_radio.current_song);
361
            if (floor(image_index) == 75)
362
            {
363
                if (!audio_is_playing(snd_drip))
364
                    audio_play_sound(snd_drip, 1, 0);
365
            }
366
            if (on_animation_end())
367
            {
368
                image_speed = 0;
369
                with (obj_dunes_08b_dispenser)
370
                {
371
                    image_index = 3;
372
                    depth = mo.depth - 1;
373
                }
374
                other.scene++;
375
                other.timer = 15;
376
            }
377
        }
378
        break;
379
    case 16:
380
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
381
            exit;
382
        with (mo)
383
        {
384
            instance_create(198, 270, obj_dunes_08b_mo_bucket);
385
            mo.y -= 2;
386
            action_sprite = false;
387
            npc_direction = "left";
388
            other.timer = 15;
389
            other.scene++;
390
        }
391
        break;
392
    case 17:
393
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
394
            exit;
395
        with (mo)
396
        {
397
            action_sprite = false;
398
            npc_direction = "right";
399
            other.timer = 15;
400
            other.scene++;
401
        }
402
        break;
403
    case 18:
404
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
405
            exit;
406
        mo.npc_direction = "down";
407
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
408
        with (msg)
409
        {
410
            position = 0;
411
            talker[0] = mo;
412
            message[0] = "* One moment.";
413
        }
414
        scene++;
415
        break;
416
    case 19:
417
        if (global.dialogue_open)
418
            exit;
419
        with (mo)
420
        {
421
            x_dest[0] = -40;
422
            y_dest[0] = y;
423
            actor_speed = 6;
424
            can_walk = true;
425
        }
426
        timer = 60;
427
        scene++;
428
        break;
429
    case 20:
430
        if (mo.npc_arrived)
431
        {
432
            if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
433
                exit;
434
            stand = instance_create(-60, 240, obj_dunes_08b_stand);
435
            stand.hsp = 8.7;
436
            audio_play_sound(snd_mo_stand_depart, 1, 0);
437
            audio_resume_sound(obj_radio.current_song);
438
            with (mo)
439
            {
440
                hsp = 7.3;
441
                action_sprite = true;
442
                y = 230;
443
                sprite_index = spr_mo_slide_dunes;
444
            }
445
            scene++;
446
        }
447
        break;
448
    case 21:
449
        with (stand)
450
        {
451
            if (hsp > 0)
452
            {
453
                hsp -= 0.1;
454
                x += hsp;
455
            }
456
            if (x > 200)
457
            {
458
                x = 200;
459
                other.scene++;
460
                audio_play_sound(snd_mo_slide, 1, 0);
461
            }
462
        }
463
        break;
464
    case 22:
465
        with (mo)
466
        {
467
            if (hsp > 0)
468
            {
469
                hsp -= 0.1;
470
                x += hsp;
471
            }
472
            if (x > 200)
473
            {
474
                x = 200;
475
                action_sprite = false;
476
                npc_direction = "down";
477
                other.scene++;
478
            }
479
        }
480
        break;
481
    case 23:
482
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
483
        with (msg)
484
        {
485
            position = 0;
486
            talker[0] = mo;
487
            if (global.route != 3)
488
            {
489
                message[0] = "* If you know your boy Mo, you#  know I planned all of that.";
490
                message[1] = "* Here's my REAL product:#  ICE TEA!";
491
                message[2] = "* It's like the sequel to water.#  Way better!";
492
                message[3] = "* Now, I'ma be real with you.";
493
                message[4] = "* The tea doesn't have ice in it#  particularly.";
494
                message[5] = "* It started as a glass of ice,#  but that melted.";
495
                message[6] = "* All I had to do was throw a tea#  bag in there and WAM!";
496
                message[7] = "* Don't worry! It tastes better#  this way.";
497
            }
498
            else
499
            {
500
                message[0] = "* Ice Tea, baby!";
501
                message[1] = "* It's like the sequel to water!";
502
                message[2] = "* So...";
503
                message[3] = "* This is the part where you#  spend the G that may or may not#  belong to you!";
504
                message[4] = "* Hey, I ain't here to judge,#  I'm here to live!";
505
            }
506
        }
507
        if (!global.dialogue_open)
508
            scene++;
509
        break;
510
    case 24:
511
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
512
        with (msg)
513
        {
514
            dialogue_is_minishop = true;
515
            portrait = false;
516
            position = 0;
517
            ch_msg = 0;
518
            ch[1] = "Ice Tea";
519
            ch[2] = "Green Tea";
520
            ch[3] = "Sea Tea";
521
            ch[4] = "Cancel";
522
            if (global.extra_flag[4] == true)
523
                ch[1] = "-SOLD OUT-";
524
            if (global.extra_flag[5] == true)
525
                ch[2] = "-SOLD OUT-";
526
            if (global.extra_flag[6] == true)
527
                ch[3] = "-SOLD OUT-";
528
            talker[0] = mo;
529
            message[0] = "* Here's what I got. (20 G)";
530
            if (global.dunes_flag[3] == 1)
531
            {
532
                message[0] = "* BAM!";
533
                message[1] = "* Welcome back!";
534
                message[2] = "* Here's what I got. (20 G)";
535
                ch_msg = 2;
536
            }
537
            switch (outcome)
538
            {
539
                case 1:
540
                case 2:
541
                case 3:
542
                    ch_msg = -1;
543
                    if (global.extra_flag[outcome + 3] == false)
544
                    {
545
                        if (!scr_inventory_check_space
scr_inventory_check_space

function scr_inventory_check_space() { for (var i = 1; i <= 8; i++) { if (global.item_slot[i] == "Nothing") { return true; break; } else if (i == 8) { return false; } } }
())
546
                        {
547
                            message[message_current + 1] = "* Uh-oh, looks like you've got no#  space for this item.";
548
                            message[message_current + 2] = "* Come back when you've made some#  more room.";
549
                        }
550
                        else if (global.player_gold < 20)
551
                        {
552
                            message[message_current + 1] = "* Sorry, buddy. I'm gonna#  need more G than that.";
553
                        }
554
                        else
555
                        {
556
                            message[message_current + 1] = "* Great choice.";
557
                            message[message_current + 2] = "* Drink up!";
558
                            global.player_gold -= 20;
559
                            scr_item
scr_item

function scr_item(arg0) { nm = arg0; for (var i = 1; i <= 8; i++) { if (global.item_slot[i] == "Nothing") { global.item_slot[i] = nm; return true; break; } else if (i == 8) { return false; } } }
(ch[outcome]);
560
                            global.extra_flag[outcome + 3] = true;
561
                            audio_play_sound(snd_shop_purchase, 1, 0);
562
                        }
563
                    }
564
                    else
565
                    {
566
                        message[message_current + 1] = "* What a popular item! I wish I#  could sell you more, but I'm#  fresh out.";
567
                        choice = false;
568
                    }
569
                    other.scene++;
570
                    break;
571
                case 4:
572
                    ch_msg = -1;
573
                    message[message_current + 1] = "* Come on, pal.";
574
                    message[message_current + 2] = "* I know my pitch was a little#  sloppy but I'm really tryin'.";
575
                    message[message_current + 3] = "* If you change your mind, I'll#  be here.";
576
                    other.scene++;
577
                    break;
578
            }
579
        }
580
        break;
581
    case 25:
582
        if (global.dialogue_open)
583
            exit;
584
        if (global.extra_flag[4] && global.extra_flag[5] && global.extra_flag[6])
585
        {
586
            scene = 27;
587
            scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() { global.cutscene = true; obj_pl.state = scr_frozen_state; obj_pl.image_index = 0; obj_pl.image_speed = 0; }
();
588
            exit;
589
        }
590
        if (scr_camera_move
scr_camera_move

function scr_camera_move(arg0, arg1, arg2) { if (!instance_exists(obj_camera)) { instance_create(__view_get(e__VW.Object, 0).x, __view_get(e__VW.Object, 0).y, obj_camera); __view_set(e__VW.Object, 0, obj_camera); } else { obj_camera.x = __view_get(e__VW.Object, 0).x; obj_camera.y = __view_get(e__VW.Object, 0).y; __view_set(e__VW.Object, 0, obj_camera); } obj_camera.move = true; obj_camera.xx = arg0; obj_camera.yy = arg1; obj_camera.spd = arg2; if (abs(arg0 - obj_camera.x) <= arg2 && abs(arg1 - obj_camera.y) <= arg2) return true; else return false; } enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(obj_pl.x, obj_pl.y, 1))
591
        {
592
            global.dunes_flag[3] = 1;
593
            __view_set(e__VW.Object, 0, obj_pl);
594
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
595
            scene = 0;
596
        }
597
        break;
598
    case 27:
599
        cutscene_dialogue();
600
        with (msg)
601
        {
602
            message[0] = "* The alphabet must have#  25 letters now, cause I'm#  fresh outta T!";
603
            message[1] = "* I'm sure we'll meet#  again! Thanks for believin'#  in me!";
604
            talker[0] = 1615;
605
        }
606
        break;
607
    case 28:
608
        scr_audio_fade_out
scr_audio_fade_out

function scr_audio_fade_out(arg0, arg1) { var snd = arg0; var fade_len = arg1; if (!audio_is_playing(snd)) return false; audio_sound_gain(snd, 0, fade_len); if (instance_exists(obj_audio_fade_helper)) { with (obj_audio_fade_helper) { if (audio_to_fade == snd) return false; } } with (instance_create(0, 0, obj_audio_fade_helper)) audio_to_fade = snd; }
(164, 300);
609
        cutscene_npc_action_sprite(1615, 980, 0.25, false, 0, 303, 2);
610
        break;
611
    case 29:
612
        with (obj_dunes_08b_stand)
613
            hspeed = -6;
614
        audio_play_sound(snd_mo_stand_depart, 1, 0);
615
        scene++;
616
        break;
617
    case 30:
618
        cutscene_wait(2);
619
        break;
620
    case 31:
621
        cutscene_dialogue();
622
        with (msg)
623
        {
624
            message[0] = "* MO, OUT!";
625
            talker[0] = 1615;
626
        }
627
        break;
628
    case 32:
629
        cutscene_npc_walk(1615, -40, 260, 4, "y", "left");
630
        break;
631
    case 33:
632
        if (global.party_member != -4)
633
        {
634
            cutscene_advance(34);
635
            exit;
636
        }
637
        cutscene_advance(35);
638
        break;
639
    case 34:
640
        cutscene_dialogue();
641
        with (msg)
642
        {
643
            sndfnt = 102;
644
            talker[0] = 1170;
645
            message[0] = "* That Mo is an odd one.\t";
646
            message[1] = "* I woulda talked to him#  but I don't know how...#  legal his business is.";
647
            message[2] = "* Our conversation#  could've turned very#  awkward, very fast.";
648
            prt[0] = 321;
649
            prt[1] = 324;
650
            prt[2] = 321;
651
        }
652
        break;
653
    case 35:
654
        instance_destroy();
655
        instance_destroy(obj_dunes_08b_mo);
656
        instance_destroy(obj_dunes_08b_stand);
657
        global.dunes_flag[3] = 2;
658
        scr_radio_restart
scr_radio_restart

function scr_radio_restart() { with (obj_radio) event_user(0); }
();
659
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
660
        break;
661
}
662
663
enum e__VW
664
{
665
    XView,
666
    YView,
667
    WView,
668
    HView,
669
    Angle,
670
    HBorder,
671
    VBorder,
672
    HSpeed,
673
    VSpeed,
674
    Object,
675
    Visible,
676
    XPort,
677
    YPort,
678
    WPort,
679
    HPort,
680
    Camera,
681
    SurfaceID
682
}