Deltarune (Chapter 4) script viewer

← back to main script listing

gml_GlobalScript_draw_sprite_ext_skew

(view raw script w/o annotations or w/e)
1
function draw_sprite_ext_skew()
2
{
3
    var sprite = argument0;
4
    var subimg = argument1;
5
    var _x = argument2;
6
    var _y = argument3;
7
    var scalex = argument4;
8
    var scaley = argument5;
9
    var rot = argument6;
10
    var alpha = argument7;
11
    var skew_kx = argument8;
12
    var skew_ky = argument9;
13
    var skew_sx = argument10;
14
    var skew_sy = argument11;
15
    var rcos = dcos(rot);
16
    var rsin = -dsin(rot);
17
    var x1 = -sprite_get_xoffset(sprite) * scalex;
18
    var x2 = x1 + (sprite_get_width(sprite) * scalex);
19
    var y1 = -sprite_get_yoffset(sprite) * scaley;
20
    var y2 = y1 + (sprite_get_height(sprite) * scaley);
21
    for (var c = 0; c < 4; c++)
22
    {
23
        var lx;
24
        if (c & 1)
25
            lx = x2;
26
        else
27
            lx = x1;
28
        var ly;
29
        if (c & 2)
30
            ly = y2;
31
        else
32
            ly = y1;
33
        var rx = (lx * rcos) - (ly * rsin);
34
        var ry = (lx * rsin) + (ly * rcos);
35
        global._draw_sprite_ext_skew_x[c] = _x + ((rx + (ry * skew_kx)) * skew_sx);
36
        global._draw_sprite_ext_skew_y[c] = _y + ((ry + (rx * skew_ky)) * skew_sy);
37
    }
38
    draw_sprite_pos(sprite, subimg, global._draw_sprite_ext_skew_x[0], global._draw_sprite_ext_skew_y[0], global._draw_sprite_ext_skew_x[1], global._draw_sprite_ext_skew_y[1], global._draw_sprite_ext_skew_x[3], global._draw_sprite_ext_skew_y[3], global._draw_sprite_ext_skew_x[2], global._draw_sprite_ext_skew_y[2], alpha);
39
}