Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_actor_tenna_Draw_0

(view raw script w/o annotations or w/e)
1
if (golden_mode)
2
    pal_swap_set(palette_sprite, 1, false);
3
if (facing == "r")
4
    reversal = 1;
5
if (facing == "l")
6
    reversal = 0;
7
facing = "d";
8
siner += speedscale;
9
siner0 += speedscale;
10
siner1 += speedscale;
11
siner2 += speedscale;
12
if (!scaled_bounce)
13
{
14
    if (bounce == 1)
15
    {
16
        image_yscale = 2.5;
17
        image_xscale = (image_xscale < 0) ? -1.5 : 1.5;
18
        bounce = 2;
19
    }
20
    if (bounce == 2)
21
    {
22
        var target_scale = (image_xscale < 0) ? -2 : 2;
23
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_xscale", image_xscale, target_scale, 16, -2, "out");
24
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_yscale", image_yscale, 2, 16, -2, "out");
25
        bounce = 3;
26
    }
27
    if (bounce == 3)
28
    {
29
        if (image_yscale <= 2.01)
30
        {
31
            image_yscale = 2;
32
            bounce = 0;
33
        }
34
    }
35
}
36
else
37
{
38
    if (bounce == 1)
39
    {
40
        cur_xscale = image_xscale;
41
        cur_yscale = image_yscale;
42
        bounce = 2;
43
    }
44
    if (bounce == 2)
45
    {
46
        image_yscale = cur_yscale * 1.25;
47
        image_xscale = cur_xscale * 0.75;
48
        bounce = 3;
49
    }
50
    if (bounce == 3)
51
    {
52
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_xscale", image_xscale, cur_xscale, 16, -2, "out");
53
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_yscale", image_yscale, cur_yscale, 16, -2, "out");
54
        bounce = 4;
55
    }
56
    if (bounce == 4)
57
    {
58
        if (image_yscale <= (cur_yscale + 0.1))
59
        {
60
            image_yscale = cur_yscale;
61
            bounce = 0;
62
        }
63
    }
64
}
65
if (preset != -1)
66
{
67
    drawtype = 0;
68
    if (preset == 0)
69
    {
70
        image_speed = 0;
71
        wobblestate = 0;
72
        wobbletime = 0;
73
        wobbleamt = 0;
74
        drawtype = 1;
75
    }
76
    if (preset == 1)
77
    {
78
        sprite_index = spr_tenna_laugh_pose;
79
        wobblestate = 1;
80
        wobbletime = 4;
81
        wobbleamt = 10;
82
    }
83
    if (preset == 2)
84
    {
85
        sprite_index = spr_tenna_point_up;
86
        wobblestate = 1;
87
        wobbletime = 4;
88
        wobbleamt = 8;
89
    }
90
    if (preset == -2)
91
    {
92
        wobblestate = 1;
93
        wobbletime = 4;
94
        wobbleamt = 8;
95
    }
96
    if (preset == -3)
97
    {
98
        sprite_index = spr_tenna_pose_podium;
99
        image_index = 1;
100
        wobblestate = 1;
101
        wobbletime = 4;
102
        wobbleamt = 8;
103
    }
104
    if (preset == 2.5)
105
    {
106
        sprite_index = spr_tenna_point_top;
107
        wobblestate = 1;
108
        wobbletime = 4;
109
        wobbleamt = 8;
110
    }
111
    if (preset == 3)
112
    {
113
        sprite_index = spr_tenna_listening;
114
        wobblestate = 1;
115
        wobbletime = 4;
116
        wobbleamt = 30;
117
    }
118
    if (preset == 4)
119
    {
120
        sprite_index = spr_tenna_laugh_pose;
121
        wobblestate = 3;
122
        wobbletime = 3;
123
        wobbleamt = 15;
124
    }
125
    if (preset == 5)
126
    {
127
        reversal = 0;
128
        animchangetimer = 8;
129
        wobblestate = 4;
130
        wobbleamt = 40;
131
        wobbletime = 4;
132
        changespeed = 20;
133
    }
134
    if (preset == 6)
135
    {
136
        sprite_index = spr_tenna_bow;
137
        image_speed = 0.25;
138
        wobblestate = 5;
139
        wobbletime = 3;
140
        wobbleamt = 10;
141
    }
142
    if (preset == 7)
143
    {
144
        sprite_index = spr_tenna_sad;
145
        wobblestate = 6;
146
        wobbletime = 12;
147
        wobbleamt = 20;
148
    }
149
    if (preset == 8)
150
    {
151
        wobblestate = 6;
152
        wobbletime = 1;
153
        wobbleamt = 2;
154
    }
155
    if (preset == 9)
156
    {
157
        wobblestate = 7;
158
        wobbletime = 0.5;
159
        wobbleamt = 2;
160
    }
161
    if (preset == 10)
162
    {
163
        wobblestate = 0;
164
        wobbletime = 0;
165
        wobbleamt = 0;
166
        drawtype = 1;
167
    }
168
    if (preset == 11)
169
    {
170
        sprite_index = spr_tenna_bow;
171
        image_speed = 0.5;
172
        wobblestate = 8;
173
        wobbletime = 1;
174
        wobbleamt = 10;
175
    }
176
    if (preset == 12)
177
    {
178
        sprite_index = spr_tenna_grasp_anim;
179
        image_speed = 0.35;
180
        wobblestate = 1;
181
        wobbletime = 2;
182
        wobbleamt = 20;
183
    }
184
    if (preset == 13)
185
    {
186
        sprite_index = spr_tenna_grasp_anim_b;
187
        image_speed = 0.5;
188
        wobblestate = 6;
189
        wobbletime = 2;
190
        wobbleamt = 20;
191
        drawtype = 1;
192
    }
193
    if (preset == 14)
194
    {
195
        sprite_index = spr_tenna_evil;
196
        wobblestate = 7;
197
        wobbletime = 1;
198
        wobbleamt = 2;
199
    }
200
    if (preset == 15)
201
    {
202
        wobblestate = 6;
203
        wobbletime = 0.5;
204
        wobbleamt = 6;
205
    }
206
    if (preset == 16)
207
    {
208
        wobblestate = 10;
209
        wobbletime = 3;
210
        wobbleamt = 30;
211
    }
212
    if (preset == 17)
213
    {
214
        sprite_index = spr_tenna_dance_cane;
215
        wobblestate = 0;
216
        wobbletime = 0;
217
        wobbleamt = 0;
218
        drawtype = 1;
219
    }
220
    if (preset == 18)
221
    {
222
        reversal = 0;
223
        animchangetimer = 4;
224
        wobblestate = 4;
225
        wobbleamt = 20;
226
        wobbletime = 4;
227
    }
228
    if (preset == 19)
229
    {
230
        rosecon = 1;
231
        rosetimer = 0;
232
        drawtype = 3;
233
        image_xscale = 0.5 * sign(image_xscale);
234
        image_yscale = 0.5;
235
        image_speed = 0;
236
        image_index = 0;
237
    }
238
    if (preset == 20)
239
    {
240
        wobblestate = 5;
241
        wobbletime = 3;
242
        wobbleamt = 30;
243
    }
244
    if (preset == 21)
245
    {
246
        wobblestate = 12;
247
        wobbleamt = 7;
248
        wobbletime = 4.5;
249
        drawtype = 0;
250
        image_speed = 0;
251
        sprite_index = spr_tenna_point_at_screen;
252
    }
253
    if (preset == -21)
254
    {
255
        wobblestate = 12;
256
        wobbleamt = 7;
257
        wobbletime = 4.5;
258
        drawtype = 0;
259
    }
260
    if (preset == 22)
261
    {
262
        wobblestate = 7;
263
        wobbleamt = 5.9;
264
        wobbletime = 2.4;
265
        drawtype = 0;
266
        image_speed = 0;
267
        sprite_index = spr_tenna_pose;
268
    }
269
    if (preset == 23)
270
    {
271
        wobblestate = 8;
272
        wobbleamt = 7.7;
273
        wobbletime = 6;
274
        drawtype = 0;
275
        image_speed = 0.25;
276
        sprite_index = spr_tenna_blossom_animation;
277
    }
278
    if (preset == 24)
279
    {
280
        wobblestate = 8;
281
        wobbleamt = 7.7;
282
        wobbletime = 6;
283
        drawtype = 0;
284
        image_speed = 0.25;
285
        sprite_index = spr_tenna_dance_cabbage;
286
    }
287
    if (preset == 25)
288
    {
289
        wobblestate = 8;
290
        wobbleamt = 7.7;
291
        wobbletime = 6;
292
        drawtype = 0;
293
        image_speed = 0.25;
294
        sprite_index = spr_tenna_dance_cane;
295
    }
296
    if (preset == 26)
297
    {
298
        wobblestate = 5.5;
299
        wobbletime = 10;
300
        wobbleamt = 40;
301
        siner = 1.5707963267948966 * wobbletime;
302
    }
303
    if (preset == 27)
304
    {
305
        sprite_index = spr_tenna_hooray;
306
        image_index = 0;
307
        image_speed = 0;
308
        bounce = 0;
309
    }
310
    if (preset == 28)
311
    {
312
        sprite_index = spr_tenna_hooray;
313
        image_index = 3;
314
        image_speed = 0;
315
        wobbleamt = 30;
316
        wobblestate = 1;
317
        wobbletime = 10;
318
        bounce = 1;
319
    }
320
    if (preset == 30)
321
    {
322
        wobblestate = 0;
323
        wobbleamt = 0;
324
        wobbletime = 0;
325
        drawtype = 1;
326
        image_speed = 1;
327
        sprite_index = spr_tenna_twirl;
328
    }
329
    if (preset == 31)
330
    {
331
        wobbleamt = 15;
332
        wobblestate = 12;
333
        wobbletime = 5;
334
        bounce = 0;
335
    }
336
    if (preset == 32)
337
    {
338
        wobblestate = 12;
339
        wobbleamt = 7;
340
        wobbletime = 4.5;
341
        drawtype = 0;
342
        image_speed = 0;
343
        sprite_index = spr_tenna_pose;
344
    }
345
    if (preset == -32)
346
    {
347
        wobblestate = 12;
348
        wobbleamt = 7;
349
        wobbletime = 4.5;
350
        drawtype = 0;
351
    }
352
    if (preset == 33)
353
    {
354
        reversal = 0;
355
        wobblestate = 8;
356
        wobbleamt = 40;
357
        wobbletime = 4;
358
    }
359
    if (preset == 34)
360
    {
361
        reversal = 0;
362
        wobblestate = 13;
363
        changespeed = 15;
364
        animchangetimer = 0;
365
        pointcon = 0;
366
        wobbleamt = 10;
367
        wobbletime = 4;
368
    }
369
    if (preset == 35)
370
    {
371
        reversal = 0;
372
        wobblestate = -1;
373
        rate = 2;
374
        shtimer = 0;
375
        drawtype = 2;
376
    }
377
    if (preset == 36)
378
    {
379
        reversal = 0;
380
        drawtype = 0;
381
        siner = 0;
382
        wobbleamt = 10;
383
        wobblestate = 16;
384
    }
385
    if (preset == 37)
386
    {
387
        reversal = 0;
388
        drawtype = 0;
389
        siner = 0;
390
        wobbleamt = 10;
391
        wobblestate = 14;
392
    }
393
    if (preset == 69)
394
    {
395
        wobblestate = 6;
396
        wobbleamt = 20;
397
        wobbletime = 4;
398
        drawtype = 0;
399
        image_speed = 0.25;
400
        sprite_index = spr_tenna_bulletin;
401
    }
402
    preset = -1;
403
}
404
x1 = x - sprite_xoffset;
405
y1 = y - sprite_yoffset;
406
x2 = (x - sprite_xoffset) + sprite_width;
407
y2 = y - sprite_yoffset;
408
x3 = (x - sprite_xoffset) + sprite_width;
409
y3 = (y - sprite_yoffset) + sprite_height;
410
x4 = x - sprite_xoffset;
411
y4 = (y - sprite_yoffset) + sprite_height;
412
var reversalsign = 1;
413
if (reversal == 1)
414
    reversalsign = -1;
415
if (wobblestate == 1)
416
{
417
    x1 += (abs(sin(siner / wobbletime) * wobbleamt) * reversalsign);
418
    x2 += (abs(sin(siner / wobbletime) * wobbleamt) * reversalsign);
419
    y1 -= abs(sin(siner / wobbletime) * wobbleamt);
420
    y2 += abs(sin(siner / wobbletime) * wobbleamt);
421
}
422
if (wobblestate == 2)
423
{
424
    x1 += (sin(siner / wobbletime) * 10 * reversalsign);
425
    x2 += (sin(siner / wobbletime) * 10 * reversalsign);
426
    y1 -= (sin((siner / wobbletime) * 0.9) * 14);
427
    y2 += (sin((siner / wobbletime) * 1.1) * 14);
428
}
429
if (wobblestate == 3)
430
{
431
    if (sin(siner / wobbletime) < 0)
432
        reversal = 1;
433
    else
434
        reversal = 0;
435
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
436
    var addamt2 = addamt;
437
    if (reversal == 1)
438
        addamt = -addamt;
439
    x1 += addamt;
440
    x2 += addamt;
441
    y1 -= addamt2;
442
    y2 += addamt2;
443
}
444
var _keep_pivot = false;
445
if (wobblestate == 4)
446
{
447
    siner -= (speedscale - 1);
448
    animchangetimer += speedscale;
449
    if (animchangetimer >= changespeed && pointcon == 0)
450
    {
451
        reversal = 0;
452
        sprite_index = spr_tenna_point_left;
453
        bounce = 1;
454
        pointcon++;
455
    }
456
    if (animchangetimer >= (changespeed * 2) && pointcon == 1)
457
    {
458
        reversal = 0;
459
        sprite_index = spr_tenna_point_up;
460
        x1 = x - sprite_xoffset;
461
        y1 = y - sprite_yoffset;
462
        x2 = (x - sprite_xoffset) + sprite_width;
463
        y2 = y - sprite_yoffset;
464
        x3 = (x - sprite_xoffset) + sprite_width;
465
        y3 = (y - sprite_yoffset) + sprite_height;
466
        x4 = x - sprite_xoffset;
467
        y4 = (y - sprite_yoffset) + sprite_height;
468
        bounce = 1;
469
        pointcon++;
470
    }
471
    if (animchangetimer >= (changespeed * 3) && pointcon == 2)
472
    {
473
        sprite_index = spr_tenna_point_left;
474
        reversal = 1;
475
        bounce = 1;
476
        pointcon++;
477
    }
478
    if (animchangetimer >= (changespeed * 4))
479
    {
480
        reversal = 1;
481
        sprite_index = spr_tenna_point_up;
482
        x1 = x - sprite_xoffset;
483
        y1 = y - sprite_yoffset;
484
        x2 = (x - sprite_xoffset) + sprite_width;
485
        y2 = y - sprite_yoffset;
486
        x3 = (x - sprite_xoffset) + sprite_width;
487
        y3 = (y - sprite_yoffset) + sprite_height;
488
        x4 = x - sprite_xoffset;
489
        y4 = (y - sprite_yoffset) + sprite_height;
490
        bounce = 1;
491
        animchangetimer = 0;
492
        pointcon = 0;
493
    }
494
    if (pointcon == 3)
495
        _keep_pivot = true;
496
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
497
    var addamt2 = addamt;
498
    if (reversal == 1)
499
        addamt = -addamt;
500
    x1 += addamt;
501
    x2 += addamt;
502
    y1 -= addamt2;
503
    y2 += addamt2;
504
}
505
if (wobblestate == 5)
506
{
507
    if (sin(siner / wobbletime) < 0)
508
        reversal = 1;
509
    else
510
        reversal = 0;
511
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
512
    var addamt2 = addamt;
513
    if (reversal == 1)
514
        addamt = -addamt;
515
    x1 += addamt;
516
    x2 += addamt;
517
    y1 -= addamt2;
518
    y2 += addamt2;
519
}
520
if (wobblestate > 5 && wobblestate < 6)
521
{
522
    if (wobblestate == 5.5)
523
    {
524
        x1 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
525
        x2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
526
        y1 -= (abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt);
527
        y2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) / 2);
528
        if (sin((siner + 1) / wobbletime) <= 0.5)
529
        {
530
            wobblestate = 5.6;
531
            sprite_index = spr_tenna_sad;
532
        }
533
    }
534
    if (wobblestate == 5.6)
535
    {
536
        x1 += ((abs(sin(siner / wobbletime) * wobbleamt) - (wobbleamt / 2)) * reversalsign);
537
        x2 += ((abs(sin(siner / wobbletime) * wobbleamt) - (wobbleamt / 2)) * reversalsign);
538
        y1 -= (abs(sin(siner / wobbletime) * wobbleamt) - (wobbleamt / 2));
539
        y2 += ((abs(sin(siner / wobbletime) * wobbleamt) - (wobbleamt / 2)) / 2);
540
        if (sin((siner + 1) / wobbletime) <= 0)
541
            preset = 7;
542
    }
543
}
544
if (wobblestate == 6)
545
{
546
    x1 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
547
    x2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
548
    y1 -= (abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt);
549
    y2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) / 2);
550
}
551
if (wobblestate == 7)
552
{
553
    x1 += (sin(siner / wobbletime) * wobbleamt * reversalsign);
554
    x2 += (sin(siner / wobbletime) * wobbleamt * reversalsign);
555
    y1 -= (((sin((siner / wobbletime) * 0.5) * wobbleamt) / 2) * -1);
556
    y2 += ((sin((siner / wobbletime) * 0.5) * wobbleamt) / 3);
557
}
558
if (wobblestate == 8)
559
{
560
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
561
    var addamt2 = addamt;
562
    if (reversal == 1)
563
        addamt = -addamt;
564
    x1 += addamt;
565
    x2 += addamt;
566
    y1 -= addamt2;
567
    y2 += addamt2;
568
}
569
if (wobblestate == 9)
570
{
571
    y1 -= (sin((siner / wobbletime) * wobbleamt * 0.9) * 14);
572
    y2 += (sin((siner / wobbletime) * wobbleamt * 1.1) * 14);
573
}
574
if (wobblestate == 10)
575
{
576
    var localReverse = 0;
577
    if (sin(siner / wobbletime) < 0)
578
        localReverse = 1;
579
    else
580
        localReverse = 0;
581
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
582
    var addamt2 = addamt;
583
    if (localReverse == 1)
584
        addamt = -addamt;
585
    x1 += addamt;
586
    x2 += addamt;
587
    y1 -= addamt2;
588
    y2 += addamt2;
589
}
590
if (wobblestate == 11)
591
{
592
    siner -= (speedscale - 1);
593
    animchangetimer += speedscale;
594
    if (animchangetimer >= changespeed && pointcon == 0)
595
    {
596
        reversal = 0;
597
        sprite_index = spr_tenna_point_left;
598
        bounce = 1;
599
        pointcon++;
600
    }
601
    if (animchangetimer >= (changespeed * 2) && pointcon == 1)
602
    {
603
        reversal = 0;
604
        sprite_index = spr_tenna_point_at_screen;
605
        x1 = x - sprite_xoffset;
606
        y1 = y - sprite_yoffset;
607
        x2 = (x - sprite_xoffset) + sprite_width;
608
        y2 = y - sprite_yoffset;
609
        x3 = (x - sprite_xoffset) + sprite_width;
610
        y3 = (y - sprite_yoffset) + sprite_height;
611
        x4 = x - sprite_xoffset;
612
        y4 = (y - sprite_yoffset) + sprite_height;
613
        bounce = 1;
614
        pointcon++;
615
    }
616
    if (animchangetimer >= (changespeed * 3) && pointcon == 2)
617
    {
618
        sprite_index = spr_tenna_salute_b;
619
        reversal = 0;
620
        bounce = 1;
621
        pointcon++;
622
    }
623
    if (animchangetimer >= (changespeed * 4))
624
    {
625
        reversal = 1;
626
        sprite_index = spr_tenna_point_up;
627
        x1 = x - sprite_xoffset;
628
        y1 = y - sprite_yoffset;
629
        x2 = (x - sprite_xoffset) + sprite_width;
630
        y2 = y - sprite_yoffset;
631
        x3 = (x - sprite_xoffset) + sprite_width;
632
        y3 = (y - sprite_yoffset) + sprite_height;
633
        x4 = x - sprite_xoffset;
634
        y4 = (y - sprite_yoffset) + sprite_height;
635
        bounce = 1;
636
        animchangetimer = 0;
637
        pointcon = 0;
638
    }
639
    if (pointcon == 3)
640
        _keep_pivot = true;
641
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
642
    var addamt2 = addamt;
643
    if (reversal == 1)
644
        addamt = -addamt;
645
    x1 += addamt;
646
    x2 += addamt;
647
    y1 -= addamt2;
648
    y2 += addamt2;
649
}
650
if (wobblestate == 12)
651
{
652
    var amt = abs(sin(siner / wobbletime) * wobbleamt);
653
    var amt2 = abs(cos(siner / wobbletime) * wobbleamt);
654
    x1 += amt;
655
    x2 += (amt2 / 2);
656
    y1 += amt;
657
    y2 += amt;
658
}
659
if (wobblestate == 13)
660
{
661
    siner -= (speedscale - 1);
662
    animchangetimer += speedscale;
663
    if (pointcon == 0)
664
    {
665
        sprite_index = spr_tenna_laugh_pose_alt;
666
        x1 = x - sprite_xoffset;
667
        y1 = y - sprite_yoffset;
668
        x2 = (x - sprite_xoffset) + sprite_width;
669
        y2 = y - sprite_yoffset;
670
        x3 = (x - sprite_xoffset) + sprite_width;
671
        y3 = (y - sprite_yoffset) + sprite_height;
672
        x4 = x - sprite_xoffset;
673
        y4 = (y - sprite_yoffset) + sprite_height;
674
        timediff = 0;
675
        pointcon++;
676
        wobbletime = 1;
677
        wobbleamt = 2;
678
    }
679
    if (pointcon == 1)
680
    {
681
        x1 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
682
        x2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
683
        y1 -= (abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt);
684
        y2 += ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) / 2);
685
        timediff = animchangetimer / changespeed;
686
        x1 -= (timediff * 10);
687
        x2 += (timediff * 10);
688
        x4 -= (timediff * 10);
689
        x3 += (timediff * 10);
690
        y1 = (y1 - 10) + (timediff * 20);
691
        y2 = (y2 - 10) + (timediff * 20);
692
        if (animchangetimer >= changespeed)
693
            pointcon++;
694
    }
695
    if (pointcon == 99)
696
    {
697
        timediff = animchangetimer / changespeed;
698
        
scr_debug_print
scr_debug_print

function
scr_debug_print(arg0)
{ } function print_message(arg0) { } function debug_print(arg0) { } function scr_debug_clear_all() { scr_debug_clear_persistent(); }
(string(timediff));
699
        x1 -= (timediff * 20);
700
        x2 += (timediff * 20);
701
        x4 -= (timediff * 20);
702
        x3 += (timediff * 20);
703
        y1 += (timediff * 10);
704
        y2 += (timediff * 10);
705
        if (animchangetimer >= changespeed)
706
            pointcon++;
707
    }
708
    if (pointcon == 2)
709
    {
710
        reversal = 0;
711
        sprite_index = spr_tenna_hooray_armsup;
712
        bounce = 1;
713
        pointcon++;
714
    }
715
    if (pointcon == 3)
716
    {
717
        if (animchangetimer >= (changespeed * 2))
718
        {
719
            animchangetimer = 0;
720
            pointcon = 0;
721
        }
722
    }
723
    var addamt = abs(sin(siner / wobbletime) * wobbleamt);
724
    var addamt2 = addamt;
725
}
726
if (wobblestate == 14)
727
{
728
    sprite_index = spr_tenna_frightened;
729
    shakex = sin(siner / 4) * sin(siner / 3) * 12;
730
    shakey = -abs(cos(siner / 2) * cos(siner / 1.5) * 28);
731
    drawtype = 0;
732
    siner = floor(siner);
733
    image_index = (sin(siner / 4) * 3) + 3;
734
}
735
if (wobblestate == 15)
736
{
737
    sprite_index = spr_tenna_freakout;
738
    shakex = sin(siner / 4) * sin(siner / 3) * 12;
739
    shakey = -abs(cos(siner / 2) * cos(siner / 1.5) * 28);
740
    drawtype = 0;
741
    siner = floor(siner);
742
    image_index = (sin(siner / 4) * 16) + 48;
743
}
744
if (wobblestate == 16)
745
{
746
    sprite_index = spr_tenna_freakout;
747
    shakex = sin(siner / 4) * sin(siner / 3) * 12;
748
    shakey = -abs(cos(siner / 2) * cos(siner / 1.5) * 28);
749
    drawtype = 0;
750
    siner = floor(siner);
751
    if (frame < 10)
752
        frame = 10;
753
    if ((siner % 40) == 0)
754
    {
755
        frame = floor(random(63)) + 10;
756
        wobbleamt = 3 + floor(random(10));
757
    }
758
    image_index = frame + (sin(siner / 2) * wobbleamt);
759
}
760
if (wobblestate == 17)
761
{
762
    x1 -= ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
763
    x2 -= ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) * reversalsign);
764
    y1 += (abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt);
765
    y2 -= ((abs(sin(siner / wobbletime) * wobbleamt) - wobbleamt) / 2);
766
}
767
if (reversal == 1)
768
{
769
    var remx1 = x1;
770
    var remx2 = x2;
771
    var remx3 = x3;
772
    var remx4 = x4;
773
    x1 = remx2;
774
    x2 = remx1;
775
    x3 = remx4;
776
    x4 = remx3;
777
    if (_keep_pivot)
778
    {
779
        x1 += (sprite_width - sprite_xoffset);
780
        x2 += (sprite_width - sprite_xoffset);
781
        x3 += (sprite_width - sprite_xoffset);
782
        x4 += (sprite_width - sprite_xoffset);
783
    }
784
}
785
if (drawtype == 0)
786
{
787
    if (xscale != 2)
788
    {
789
        x1 = x + ((x1 - x) * (xscale / 2));
790
        x2 = x + ((x2 - x) * (xscale / 2));
791
        x3 = x + ((x3 - x) * (xscale / 2));
792
        x4 = x + ((x4 - x) * (xscale / 2));
793
    }
794
    if (yscale != 2)
795
    {
796
        y1 = y + ((y1 - y) * (yscale / 2));
797
        y2 = y + ((y2 - y) * (yscale / 2));
798
        y3 = y + ((y3 - y) * (yscale / 2));
799
        y4 = y + ((y4 - y) * (yscale / 2));
800
    }
801
    if (shakex != 0)
802
    {
803
        x1 += shakex;
804
        x2 += shakex;
805
        x3 += shakex;
806
        x4 += shakex;
807
    }
808
    if (shakey != 0)
809
    {
810
        y1 += shakey;
811
        y2 += shakey;
812
        y3 += shakey;
813
        y4 += shakey;
814
    }
815
    if (outline)
816
    {
817
        d3d_set_fog(true, c_black, 0, 1);
818
        draw_sprite_pos(sprite_index, image_index, x1 - 2, y1, x2 - 2, y2, x3 - 2, y3, x4 - 2, y4, 1);
819
        draw_sprite_pos(sprite_index, image_index, x1, y1 - 2, x2, y2 - 2, x3, y3 - 2, x4, y4 - 2, 1);
820
        draw_sprite_pos(sprite_index, image_index, x1, y1 + 2, x2, y2 + 2, x3, y3 + 2, x4, y4 + 2, 1);
821
        draw_sprite_pos(sprite_index, image_index, x1 + 2, y1, x2 + 2, y2, x3 + 2, y3, x4 + 2, y4, 1);
822
        d3d_set_fog(false, c_black, 0, 0);
823
    }
824
    if (dropshadow)
825
    {
826
        d3d_set_fog(true, c_black, 0, 1);
827
        draw_sprite_pos(sprite_index, image_index, x1 + dropdist, y1 + dropdist, x2 + dropdist, y2 + dropdist, x3 + dropdist, y3 + dropdist, x4 + dropdist, y4 + dropdist, 1);
828
        d3d_set_fog(false, c_white, 0, 0);
829
    }
830
    draw_sprite_pos(sprite_index, image_index, x1, y1, x2, y2, x3, y3, x4, y4, 1);
831
    if (mad)
832
    {
833
        flash = true;
834
        image_blend = c_red;
835
    }
836
    if (flash)
837
    {
838
        flashsiner++;
839
        d3d_set_fog(true, image_blend, 0, 1);
840
        draw_sprite_pos(sprite_index, image_index, x1, y1, x2, y2, x3, y3, x4, y4, (-cos(flashsiner / 5) * 0.4) + 0.6);
841
        d3d_set_fog(false, c_black, 0, 0);
842
    }
843
}
844
if (drawtype == 1)
845
{
846
    if (dropshadow)
847
        draw_sprite_ext(sprite_index, image_index, x + dropdist, y + dropdist, image_xscale, image_yscale, image_angle, c_black, image_alpha);
848
    draw_self();
849
    if (flash)
850
    {
851
        flashsiner++;
852
        d3d_set_fog(true, image_blend, 0, 1);
853
        draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, (-cos(flashsiner / 5) * 0.4) + 0.6);
854
        d3d_set_fog(false, c_black, 0, 0);
855
    }
856
    if (darkenalpha > 0)
857
    {
858
        d3d_set_fog(true, c_black, 0, 1);
859
        draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, c_black, darkenalpha);
860
        d3d_set_fog(false, c_black, 0, 0);
861
        darkenalpha -= 0.01;
862
    }
863
}
864
if (drawtype == 2)
865
{
866
    shtimer++;
867
    draw_sprite_ext(spr_tenna_laugh_pose_segmented_leftarm, 0, x + ((sin(shtimer / rate) * 4) + 6), y + (cos(shtimer / rate) * 4), 2, 2, 0, c_white, 1);
868
    draw_sprite_ext(spr_tenna_laugh_pose_segmented_body, 0, x, y, 2, 2 + (sin(shtimer / rate) * 0.1), 0, c_white, 1);
869
    draw_sprite_ext(spr_tenna_laugh_pose_segmented_rightarm, 0, x - (sin(shtimer / rate) * 4), y - (-cos(shtimer / rate) * 4), 2, 2, 0, c_white, 1);
870
}
871
if (drawtype == 3)
872
{
873
    if (rosecon == 1)
874
    {
875
        rosetimer++;
876
        if (rosetimer == 1)
877
        {
878
            image_speed = 0;
879
            image_index = 0;
880
            rosetennasprite = 5385;
881
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_xscale", image_xscale, sign(image_xscale) * 2, 30, -1, "out");
882
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_yscale", image_yscale, 2, 30, -1, "out");
883
        }
884
        if (rosetimer == 12)
885
        {
886
            rosetennasprite = 3887;
887
            image_index = 0;
888
        }
889
        if (rosetimer >= 16)
890
            image_index = 1;
891
        if (rosetimer >= 19)
892
            image_index = 2;
893
        if (rosetimer >= 22)
894
            image_index = 3;
895
        if (rosetimer == 29)
896
        {
897
            image_index = 3;
898
            image_speed = 0;
899
            sprite_index = rosetennasprite;
900
            drawtype = 0;
901
            wobblestate = 7;
902
            wobbletime = 2;
903
            wobbleamt = 6;
904
            siner = 0;
905
            timer = 0;
906
            rosecon = 2;
907
        }
908
    }
909
    draw_sprite_ext(rosetennasprite, image_index, x, y, image_xscale, image_yscale, 0, c_white, 1);
910
}
911
if (nose_bloom)
912
{
913
    var blossom_x_offset = (image_xscale < 0) ? -36 : 36;
914
    draw_sprite_ext(spr_tenna_blossom, nose_bloom_index, x1 + blossom_x_offset, y1 + 36, nose_bloom_scale_x, nose_bloom_scale_y, image_angle, c_white, image_alpha);
915
}
916
if (communication > 0)
917
{
918
    if (communication == 1)
919
    {
920
        communicationtimer = 0;
921
        communication = 2;
922
    }
923
    if (communication == 2)
924
    {
925
        var antennax1 = x + (6 * xscale);
926
        var antennay1 = y - (120 * yscale);
927
        var antennax2 = x + (24 * xscale);
928
        var antennay2 = y - (116 * yscale);
929
        if (sprite_index == spr_tenna_communication)
930
        {
931
            if (image_index >= 1)
932
            {
933
                antennax1 = x + (30 * xscale);
934
                antennay1 = y - (95 * yscale);
935
                antennax2 = x + (48 * xscale);
936
                antennay2 = y - (90 * yscale);
937
            }
938
        }
939
        if (sprite_index == spr_tenna_hurt)
940
        {
941
            antennax1 = x + (20 * xscale);
942
            antennay1 = y - (105 * yscale);
943
            antennax2 = x + (42 * xscale);
944
            antennay2 = y - (108 * yscale);
945
        }
946
        if (sprite_index == spr_tenna_sad_turned_b)
947
        {
948
            antennax1 = x + (1 * xscale);
949
            antennay1 = y - (100 * yscale);
950
            antennax2 = x - (20 * xscale);
951
            antennay2 = y - (102 * yscale);
952
        }
953
        if (sprite_index == spr_tenna_faceaway)
954
        {
955
            antennax1 = x - 22;
956
            antennay1 = y - 242;
957
            antennax2 = x + 20;
958
            antennay2 = y - 242;
959
        }
960
        if ((communicationtimer % 90) == 0)
961
        {
962
            snd_play_x(snd_sonar, 0.8, 0.8);
963
            snd_play_x(snd_sonar, 0.8, 0.8 + random(0.05));
964
            for (var i = 0; i < 3; i++)
965
            {
966
                var _x = antennax1;
967
                var _y = antennay1;
968
                repeat (2)
969
                {
970
                    var lightningmarker = 
scr_marker
scr_marker

function
scr_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; } return thismarker; }
(_x, _y, spr_shutta_lightning);
971
                    lightningmarker.image_speed = 0.5;
972
                    lightningmarker.image_alpha = 0;
973
                    lightningmarker.depth = depth - 1;
974
                    scr_lerp_var_instance(lightningmarker, "image_alpha", 2, 0, 18 + random(6));
975
                    with (lightningmarker)
976
                    {
977
                        image_xscale = 0.5;
978
                        image_yscale = 0.5;
979
                        direction = 60 + (i * 30) + random_range(-10, 10);
980
                        image_angle = direction;
981
                        speed = 3 + random(1);
982
                        friction = 0.2;
983
                        
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(id, 20);
984
                        image_blend = c_yellow;
985
                    }
986
                    _x = antennax2;
987
                    _y = antennay2;
988
                }
989
            }
990
        }
991
        communicationtimer++;
992
    }
993
}
994
var lineshow = 0;
995
if (lineshow)
996
{
997
    draw_line(x1, y1, x2, y2);
998
    draw_line(x2, y2, x3, y3);
999
    draw_line(x1, y1, x4, y4);
1000
    draw_line(x4, y4, x3, y3);
1001
    draw_circle(x, y, 0.5, 1);
1002
    draw_text(camerax(), (cameray() + 480) - 15, "wobblestate=" + string(wobblestate));
1003
}
1004
if (golden_mode)
1005
    pal_swap_reset();