Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_tile_layer_find

(view raw script w/o annotations or w/e)
1
function tile_layer_find(arg0, arg1, arg2)
2
{
3
    var __depth = arg0;
4
    var __x = arg1;
5
    var __y = arg2;
6
    var __layers = layer_get_all();
7
    var __numlayers = array_length_1d(__layers);
8
    for (var __i = 0; __i < __numlayers; __i++)
9
    {
10
        if (layer_get_depth(__layers[__i]) != __depth)
11
            continue;
12
        var __els = layer_get_all_elements(__layers[__i]);
13
        var __numels = array_length_1d(__els);
14
        for (var __j = 0; __j < __numels; __j++)
15
        {
16
            var __eltype = layer_get_element_type(__els[__j]);
17
            if (__eltype == 7)
18
            {
19
                var __tileXscale = layer_tile_get_xscale(__els[__j]);
20
                var __tileYscale = layer_tile_get_yscale(__els[__j]);
21
                if (__tileXscale >= 0 && __tileYscale >= 0)
22
                {
23
                    var __tileX = layer_tile_get_x(__els[__j]);
24
                    if (__x < __tileX)
25
                        continue;
26
                    var __tileY = layer_tile_get_y(__els[__j]);
27
                    if (__y < __tileY)
28
                        continue;
29
                    var __tileReg = layer_tile_get_region(__els[__j]);
30
                    var __tileRight = __tileX + (__tileXscale * __tileReg[2]);
31
                    if (__x >= __tileRight)
32
                        continue;
33
                    var __tileBottom = __tileY + (__tileYscale * __tileReg[3]);
34
                    if (__y >= __tileBottom)
35
                        continue;
36
                    return __els[__j];
37
                }
38
                else
39
                {
40
                    var __tileReg = layer_tile_get_region(__els[__j]);
41
                    var __minx = layer_tile_get_x(__els[__j]);
42
                    var __maxx = __minx + (__tileXscale * __tileReg[2]);
43
                    if (__minx > __maxx)
44
                    {
45
                        var __temp = __minx;
46
                        __minx = __maxx;
47
                        __maxx = __temp;
48
                    }
49
                    if (__x < __minx)
50
                    {
51
                    }
52
                    else if (__x >= __maxx)
53
                    {
54
                    }
55
                    else
56
                    {
57
                        var __miny = layer_tile_get_y(__els[__j]);
58
                        var __maxy = __miny + (__tileYscale * __tileReg[3]);
59
                        if (__miny > __maxy)
60
                        {
61
                            var __temp = __miny;
62
                            __miny = __maxy;
63
                            __maxy = __temp;
64
                        }
65
                        if (__y < __miny)
66
                        {
67
                        }
68
                        else if (__y >= __maxy)
69
                        {
70
                        }
71
                        else
72
                        {
73
                            return __els[__j];
74
                        }
75
                    }
76
                }
77
            }
78
        }
79
    }
80
    return -1;
81
}