Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_sw_laser

(view raw script w/o annotations or w/e)
1
function sw_laser(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
2
{
3
    var _x1 = arg0;
4
    var _y1 = arg1;
5
    var _x2 = arg2;
6
    var _y2 = arg3;
7
    var _w1 = arg4;
8
    var _w2 = arg5;
9
    var _c1 = arg6;
10
    var _c3 = arg7;
11
    var _c2 = merge_color(_c1, _c3, 0.1);
12
    var _a1 = arg8;
13
    var _a2 = arg9;
14
    var _a3 = arg10;
15
    _dir = point_direction(_x1, _y1, _x2, _y2);
16
    var _s = max(1, ceil((_w1 + (_w2 * 2)) / 16));
17
    var _amt = 90 / _s;
18
    draw_primitive_begin(pr_trianglestrip);
19
    for (var i = 0; i <= _s; i++)
20
    {
21
        draw_vertex_color(_x1 + lengthdir_x(_w1 / 2, _dir + 180 + (i * _amt)), _y1 + lengthdir_y(_w1 / 2, _dir + 180 + (i * _amt)), _c2, _a2);
22
        draw_vertex_color(_x1, _y1, _c1, _a1);
23
    }
24
    for (var i = 0; i <= _s; i++)
25
    {
26
        draw_vertex_color(_x2 + lengthdir_x(_w1 / 2, (_dir - 90) + (i * _amt)), _y2 + lengthdir_y(_w1 / 2, (_dir - 90) + (i * _amt)), _c2, _a2);
27
        draw_vertex_color(_x2, _y2, _c1, _a1);
28
    }
29
    for (var i = 0; i <= _s; i++)
30
    {
31
        draw_vertex_color(_x2 + lengthdir_x(_w1 / 2, _dir + (i * _amt)), _y2 + lengthdir_y(_w1 / 2, _dir + (i * _amt)), _c2, _a2);
32
        draw_vertex_color(_x2, _y2, _c1, _a1);
33
    }
34
    for (var i = 0; i <= _s; i++)
35
    {
36
        draw_vertex_color(_x1 + lengthdir_x(_w1 / 2, ((_dir + 180) - 90) + (i * _amt)), _y1 + lengthdir_y(_w1 / 2, ((_dir + 180) - 90) + (i * _amt)), _c2, _a2);
37
        draw_vertex_color(_x1, _y1, _c1, _a1);
38
    }
39
    draw_primitive_end();
40
    draw_primitive_begin(pr_trianglestrip);
41
    for (var i = 0; i <= _s; i++)
42
    {
43
        draw_vertex_color(_x1 + lengthdir_x((_w1 / 2) + _w2, _dir + 180 + (i * _amt)), _y1 + lengthdir_y((_w1 / 2) + _w2, _dir + 180 + (i * _amt)), _c3, _a3);
44
        draw_vertex_color(_x1 + lengthdir_x(_w1 / 2, _dir + 180 + (i * _amt)), _y1 + lengthdir_y(_w1 / 2, _dir + 180 + (i * _amt)), _c2, _a2);
45
    }
46
    for (var i = 0; i <= _s; i++)
47
    {
48
        draw_vertex_color(_x2 + lengthdir_x((_w1 / 2) + _w2, (_dir - 90) + (i * _amt)), _y2 + lengthdir_y((_w1 / 2) + _w2, (_dir - 90) + (i * _amt)), _c3, _a3);
49
        draw_vertex_color(_x2 + lengthdir_x(_w1 / 2, (_dir - 90) + (i * _amt)), _y2 + lengthdir_y(_w1 / 2, (_dir - 90) + (i * _amt)), _c2, _a2);
50
    }
51
    for (var i = 0; i <= _s; i++)
52
    {
53
        draw_vertex_color(_x2 + lengthdir_x((_w1 / 2) + _w2, _dir + (i * _amt)), _y2 + lengthdir_y((_w1 / 2) + _w2, _dir + (i * _amt)), _c3, _a3);
54
        draw_vertex_color(_x2 + lengthdir_x(_w1 / 2, _dir + (i * _amt)), _y2 + lengthdir_y(_w1 / 2, _dir + (i * _amt)), _c2, _a2);
55
    }
56
    for (var i = 0; i <= _s; i++)
57
    {
58
        draw_vertex_color(_x1 + lengthdir_x((_w1 / 2) + _w2, ((_dir + 180) - 90) + (i * _amt)), _y1 + lengthdir_y((_w1 / 2) + _w2, ((_dir + 180) - 90) + (i * _amt)), _c3, _a3);
59
        draw_vertex_color(_x1 + lengthdir_x(_w1 / 2, ((_dir + 180) - 90) + (i * _amt)), _y1 + lengthdir_y(_w1 / 2, ((_dir + 180) - 90) + (i * _amt)), _c2, _a2);
60
    }
61
    draw_primitive_end();
62
}