Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_npc_PAspeaker_Draw_0

(view raw script w/o annotations or w/e)
1
if (active)
2
{
3
    draw_sprite_ext(spr_pxwhite, 0, x, y - 10 - 4 - 4, -640, 40, 0, c_black, 0.3 * baralpha);
4
    draw_sprite_ext(spr_pxwhite, 0, x, y - 10 - 2 - 4, -640, 36, 0, c_black, 0.6 * baralpha);
5
    draw_sprite_ext(spr_pxwhite, 0, x, y - 10 - 4, -640, 32, 0, c_black, 1 * baralpha);
6
    if (init == 0)
7
    {
8
        mystring += "        ";
9
        strlength = string_length(mystring);
10
        init = 1;
11
    }
12
    siner++;
13
    strtimer++;
14
    if (strtimer >= rate)
15
    {
16
        if (charindex < (strlength - 1))
17
        {
18
            charindex++;
19
            var thisletter = string_char_at(mystring, charindex);
20
            if (thisletter != " " && thisletter != "." && thisletter != "!" && thisletter != "&" && thisletter != "\"")
21
                play = 1;
22
            else
23
                image_index = 0;
24
            strtimer = 0;
25
            if (charindex > 100)
26
                minchar++;
27
            endtimer = 0;
28
            endevent = 0;
29
        }
30
        else
31
        {
32
            endtimer++;
33
            if (endtimer >= 10 && endtimer < 120)
34
            {
35
                var __amt = (endtimer * 3) / 100;
36
                add1 += random_range(-__amt, __amt);
37
                add2 += random_range(-__amt, __amt);
38
                add3 += random_range(-__amt, __amt);
39
                add4 += random_range(-__amt, __amt);
40
            }
41
            if (endtimer >= 120)
42
            {
43
                if (endevent == 0)
44
                {
45
                    endevent = 1;
46
                    scr_delay_var("active", 0, 15);
47
                    
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; }
("botpinch", botpinch, 0, 14, -2, "out");
48
                    
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; }
("add1", add1, 0, 14, -2, "out");
49
                    
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; }
("add2", add2, 0, 14, -2, "out");
50
                    
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; }
("add3", add3, 0, 14, -2, "out");
51
                    
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; }
("add4", add4, 0, 14, -2, "out");
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; }
("baralpha", baralpha, 0, 14);
53
                    scr_delay_var("charindex", 0, 16);
54
                    scr_delay_var("charindex", 0, 16);
55
                    scr_delay_var("textx", 8, 16);
56
                    sprite_index = offsprite;
57
                    scr_delay_var("strtimer", 0, 16);
58
                }
59
            }
60
        }
61
    }
62
    textx += (hspace / rate);
63
    draw_set_color(c_yellow);
64
    draw_set_font(
scr_84_get_font
scr_84_get_font

function
scr_84_get_font(arg0)
{ if (!variable_global_exists("chemg_last_get_font")) global.chemg_last_get_font = ""; if (arg0 != global.chemg_last_get_font) global.chemg_last_get_font = arg0; return ds_map_find_value(global.font_map, arg0); }
("main"));
65
    var smallamt = 6;
66
    var wobbleamount = 2;
67
    draw_set_alpha(baralpha);
68
    var n = smallamt;
69
    var i = max(charindex - smallamt, minchar);
70
    while (i < charindex)
71
    {
72
        draw_text_transformed((x - textx) + (i * hspace), y + (sin((siner + i) / 8) * wobbleamount) + yoff, string_char_at(mystring, i), n / smallamt, n / smallamt, 0);
73
        n--;
74
        i++;
75
    }
76
    if (charindex >= (smallamt + 1))
77
    {
78
        for (i = minchar; i < (charindex - smallamt); i++)
79
            draw_text((x - textx) + (i * hspace), y + (sin((siner + i) / 8) * wobbleamount) + yoff, string_char_at(mystring, i));
80
    }
81
    draw_set_alpha(1);
82
    draw_set_color(c_white);
83
}
84
if (bounce == 1)
85
{
86
    image_yscale = 2.5;
87
    image_xscale = (image_xscale < 0) ? -1.5 : 1.5;
88
    bounce = 2;
89
}
90
if (bounce == 2)
91
{
92
    var target_scale = (image_xscale < 0) ? -2 : 2;
93
    
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");
94
    
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");
95
    bounce = 3;
96
}
97
if (bounce == 3)
98
{
99
    if (image_yscale <= 2.01)
100
    {
101
        image_yscale = 2;
102
        bounce = 0;
103
    }
104
}
105
x1 = x - sprite_xoffset;
106
y1 = y - sprite_yoffset;
107
x2 = (x - sprite_xoffset) + sprite_width;
108
y2 = y - sprite_yoffset;
109
x3 = (x - sprite_xoffset) + sprite_width;
110
y3 = (y - sprite_yoffset) + sprite_height;
111
x4 = x - sprite_xoffset;
112
y4 = (y - sprite_yoffset) + sprite_height;
113
if (drawtype == 0)
114
{
115
    x1 += add1;
116
    y1 += add2;
117
    x2 += add3;
118
    y2 += add4;
119
    if (xscale != 2)
120
    {
121
        x1 = x + ((x1 - x) * (xscale / 2));
122
        x2 = x + ((x2 - x) * (xscale / 2));
123
        x3 = x + ((x3 - x) * (xscale / 2));
124
        x4 = x + ((x4 - x) * (xscale / 2));
125
    }
126
    if (yscale != 2)
127
    {
128
        y1 = y + ((y1 - y) * (yscale / 2));
129
        y2 = y + ((y2 - y) * (yscale / 2));
130
        y3 = y + ((y3 - y) * (yscale / 2));
131
        y4 = y + ((y4 - y) * (yscale / 2));
132
    }
133
    draw_sprite_pos(sprite_index, image_index, x1, y1, x2, y2, x3, y3, x4, y4, 1);
134
    if (debugbox)
135
    {
136
        draw_set_color(c_lime);
137
        draw_line(x1, y1, x2, y2);
138
        draw_line(x2, y2, x3, y3);
139
        draw_line(x3, y3, x4, y4);
140
        draw_line(x4, y4, x1, y1);
141
    }
142
}
143
if (drawtype == 1)
144
    draw_self();