Deltarune script viewer

← back to main script listing

gml_GlobalScript_scr_draw_sprite_tiled_area

(view raw script w/o annotations or w/e)
1
function scr_draw_sprite_tiled_area
scr_draw_sprite_tiled_area

function scr_draw_sprite_tiled_area() { var sprite = argument[0]; var subimg = argument[1]; var xx = argument[2]; var yy = argument[3]; var x1 = argument[4]; var y1 = argument[5]; var x2 = argument[6]; var y2 = argument[7]; var xscale = argument[8]; var yscale = argument[9]; var col = (argument_count > 10) ? argument[10] : 16777215; var alpha = (argument_count > 11) ? argument[11] : 1; var sw = sprite_get_width(sprite) * xscale; var sh = sprite_get_height(sprite) * yscale; var i = x1 - ((x1 % sw) - (xx % sw)) - (sw * ((x1 % sw) < (xx % sw))); var j = y1 - ((y1 % sh) - (yy % sh)) - (sh * ((y1 % sh) < (yy % sh))); var jj = j; while (i <= x2) { while (j <= y2) { var left; if (i <= x1) left = x1 - i; else left = 0; var X = i + left; var top; if (j <= y1) top = y1 - j; else top = 0; var Y = j + top; var width; if (x2 <= (i + sw)) width = ((sw - ((i + sw) - x2)) + 1) - left; else width = sw - left; var height; if (y2 <= (j + sh)) height = ((sh - ((j + sh) - y2)) + 1) - top; else height = sh - top; draw_sprite_part_ext(sprite, subimg, left, top, width, height, X, Y, xscale, yscale, col, alpha); j += sh; } j = jj; i += sw; } return 0; }
()
2
{
3
    var sprite = argument[0];
4
    var subimg = argument[1];
5
    var xx = argument[2];
6
    var yy = argument[3];
7
    var x1 = argument[4];
8
    var y1 = argument[5];
9
    var x2 = argument[6];
10
    var y2 = argument[7];
11
    var xscale = argument[8];
12
    var yscale = argument[9];
13
    var col = (argument_count > 10) ? argument[10] : 16777215;
14
    var alpha = (argument_count > 11) ? argument[11] : 1;
15
    var sw = sprite_get_width(sprite) * xscale;
16
    var sh = sprite_get_height(sprite) * yscale;
17
    var i = x1 - ((x1 % sw) - (xx % sw)) - (sw * ((x1 % sw) < (xx % sw)));
18
    var j = y1 - ((y1 % sh) - (yy % sh)) - (sh * ((y1 % sh) < (yy % sh)));
19
    var jj = j;
20
    while (i <= x2)
21
    {
22
        while (j <= y2)
23
        {
24
            var left;
25
            if (i <= x1)
26
                left = x1 - i;
27
            else
28
                left = 0;
29
            var X = i + left;
30
            var top;
31
            if (j <= y1)
32
                top = y1 - j;
33
            else
34
                top = 0;
35
            var Y = j + top;
36
            var width;
37
            if (x2 <= (i + sw))
38
                width = ((sw - ((i + sw) - x2)) + 1) - left;
39
            else
40
                width = sw - left;
41
            var height;
42
            if (y2 <= (j + sh))
43
                height = ((sh - ((j + sh) - y2)) + 1) - top;
44
            else
45
                height = sh - top;
46
            draw_sprite_part_ext(sprite, subimg, left, top, width, height, X, Y, xscale, yscale, col, alpha);
47
            j += sh;
48
        }
49
        j = jj;
50
        i += sw;
51
    }
52
    return 0;
53
}