Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_findsprite

(view raw script w/o annotations or w/e)
1
function findsprite(arg0, arg1 = "all", arg2 = -99999, arg3 = -99999, arg4 = -99999, arg5 = -99999, arg6 = -99999)
2
{
3
    var layerstocheck = [];
4
    var spritestocheck = [];
5
    if (arg1 == "all")
6
        layerstocheck = layer_get_all();
7
    else
8
        layerstocheck = [arg1];
9
    for (var i = 0; i < array_length(layerstocheck); i++)
10
    {
11
        var elements = layer_get_all_elements(layerstocheck[i]);
12
        for (var j = 0; j < array_length(elements); j++)
13
        {
14
            if (layer_get_element_type(elements[j]) == 4)
15
            {
16
                if (layer_sprite_get_sprite(elements[j]) == arg0)
17
                    array_push(spritestocheck, elements[j]);
18
            }
19
        }
20
    }
21
    for (var i = 0; i < array_length(spritestocheck); i++)
22
    {
23
        var isitme = true;
24
        if (arg2 != -99999)
25
        {
26
            if (layer_sprite_get_blend(spritestocheck[i]) != arg2)
27
                isitme = false;
28
        }
29
        if (arg3 != -99999)
30
        {
31
            if (layer_sprite_get_xscale(spritestocheck[i]) != arg3)
32
                isitme = false;
33
        }
34
        if (arg4 != -99999)
35
        {
36
            if (layer_sprite_get_yscale(spritestocheck[i]) != arg4)
37
                isitme = false;
38
        }
39
        if (sprite_get_speed_type(arg0) == 0)
40
            show_debug_message_concat("Warning, sprite: ", sprite_get_name(arg0), " is set to Frames Per Second instead of Frames Per Game Frame");
41
        if (arg5 != -99999)
42
        {
43
            if (layer_sprite_get_index(spritestocheck[i]) != arg5)
44
                isitme = false;
45
        }
46
        if (arg6 != -99999)
47
        {
48
            if (layer_sprite_get_speed(spritestocheck[i]) != arg6)
49
                isitme = false;
50
        }
51
        if (isitme)
52
            return spritestocheck[i];
53
    }
54
    show_debug_message_concat("findsprite: asset not found:", sprite_get_name(arg0), "| ", arg1);
55
    return -4;
56
}
57
58
function findsprite_all(arg0, arg1 = "all", arg2 = -99999, arg3 = -99999, arg4 = -99999, arg5 = -99999, arg6 = -99999)
59
{
60
    var layerstocheck = [];
61
    var spritestocheck = [];
62
    if (arg1 == "all")
63
        layerstocheck = layer_get_all();
64
    else
65
        layerstocheck = [arg1];
66
    for (var i = 0; i < array_length(layerstocheck); i++)
67
    {
68
        var elements = layer_get_all_elements(layerstocheck[i]);
69
        for (var j = 0; j < array_length(elements); j++)
70
        {
71
            if (layer_get_element_type(elements[j]) == 4)
72
            {
73
                if (layer_sprite_get_sprite(elements[j]) == arg0)
74
                    array_push(spritestocheck, elements[j]);
75
            }
76
        }
77
    }
78
    var matchingsprites = [];
79
    for (var i = 0; i < array_length(spritestocheck); i++)
80
    {
81
        var isitme = true;
82
        if (arg2 != -99999)
83
        {
84
            if (layer_sprite_get_blend(spritestocheck[i]) != arg2)
85
                isitme = false;
86
        }
87
        if (arg3 != -99999)
88
        {
89
            if (layer_sprite_get_xscale(spritestocheck[i]) != arg3)
90
                isitme = false;
91
        }
92
        if (arg4 != -99999)
93
        {
94
            if (layer_sprite_get_yscale(spritestocheck[i]) != arg4)
95
                isitme = false;
96
        }
97
        if (arg5 != -99999)
98
        {
99
            if (layer_sprite_get_index(spritestocheck[i]) != arg5)
100
                isitme = false;
101
        }
102
        if (arg6 != -99999)
103
        {
104
            if (layer_sprite_get_speed(spritestocheck[i]) != arg6)
105
                isitme = false;
106
        }
107
        if (isitme)
108
            array_push(matchingsprites, spritestocheck[i]);
109
    }
110
    if (array_length(matchingsprites) > 0)
111
    {
112
        return matchingsprites;
113
    }
114
    else
115
    {
116
        show_debug_message_concat("findsprite_all: asset not found:", sprite_get_name(arg0), "| ", arg1);
117
        return [];
118
    }
119
}
120
121
function findsprite_layer(arg0)
122
{
123
    if (layer_exists(arg0))
124
    {
125
        var layerList = [];
126
        var elements = layer_get_all_elements(arg0);
127
        for (var j = 0; j < array_length(elements); j++)
128
        {
129
            if (layer_get_element_type(elements[j]) == 4)
130
                array_push(layerList, elements[j]);
131
        }
132
        return layerList;
133
    }
134
    else
135
    {
136
        
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("Asset Layer Not Found: findsprite_layer(" + arg0 + ")");
137
        return [];
138
    }
139
}
140
141
function findspriteinfo_layer(arg0)
142
{
143
    if (layer_exists(arg0))
144
    {
145
        var layerList = [];
146
        var elements = layer_get_all_elements(arg0);
147
        for (var j = 0; j < array_length(elements); j++)
148
        {
149
            if (layer_get_element_type(elements[j]) == 4)
150
            {
151
                var spr = elements[j];
152
                var thisAsset = 
153
                {
154
                    sprite_index: layer_sprite_get_sprite(spr),
155
                    mask_index: layer_sprite_get_sprite(spr),
156
                    image_index: layer_sprite_get_index(spr),
157
                    image_speed: layer_sprite_get_speed(spr),
158
                    image_xscale: layer_sprite_get_xscale(spr),
159
                    image_yscale: layer_sprite_get_yscale(spr),
160
                    image_angle: layer_sprite_get_angle(spr),
161
                    image_blend: layer_sprite_get_blend(spr),
162
                    image_alpha: layer_sprite_get_alpha(spr),
163
                    sprite_width: sprite_get_width(layer_sprite_get_sprite(spr)) * layer_sprite_get_xscale(spr),
164
                    sprite_height: sprite_get_height(layer_sprite_get_sprite(spr)) * layer_sprite_get_yscale(spr),
165
                    x: layer_sprite_get_x(spr),
166
                    y: layer_sprite_get_y(spr),
167
                    bbox_left: layer_sprite_get_x(spr) + sprite_get_bbox_left(layer_sprite_get_sprite(spr)),
168
                    bbox_top: layer_sprite_get_y(spr) + sprite_get_bbox_top(layer_sprite_get_sprite(spr)),
169
                    bbox_right: layer_sprite_get_x(spr) + (sprite_get_bbox_right(layer_sprite_get_sprite(spr)) * layer_sprite_get_xscale(spr)),
170
                    bbox_bottom: layer_sprite_get_y(spr) + (sprite_get_bbox_bottom(layer_sprite_get_sprite(spr)) * layer_sprite_get_yscale(spr)),
171
                    depth: 0
172
                };
173
                array_push(layerList, thisAsset);
174
            }
175
        }
176
        return layerList;
177
    }
178
    else
179
    {
180
        
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("Asset Layer Not Found: findsprite_layer(" + arg0 + ")");
181
        return [];
182
    }
183
}
184
185
function findspriteinfo(arg0, arg1 = "all", arg2 = -99999, arg3 = -99999, arg4 = -99999, arg5 = -99999, arg6 = -99999)
186
{
187
    var spr = findsprite(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
188
    if (spr == -4)
189
        show_debug_message_concat("findspriteinfo: asset not found:", sprite_get_name(arg0), "| ", arg1);
190
    var myreturn = 
191
    {
192
        sprite_index: layer_sprite_get_sprite(spr),
193
        mask_index: layer_sprite_get_sprite(spr),
194
        image_index: layer_sprite_get_index(spr),
195
        image_speed: layer_sprite_get_speed(spr),
196
        image_xscale: layer_sprite_get_xscale(spr),
197
        image_yscale: layer_sprite_get_yscale(spr),
198
        image_angle: layer_sprite_get_angle(spr),
199
        image_blend: layer_sprite_get_blend(spr),
200
        image_alpha: layer_sprite_get_alpha(spr),
201
        sprite_width: sprite_get_width(layer_sprite_get_sprite(spr)) * layer_sprite_get_xscale(spr),
202
        sprite_height: sprite_get_height(layer_sprite_get_sprite(spr)) * layer_sprite_get_yscale(spr),
203
        x: layer_sprite_get_x(spr),
204
        y: layer_sprite_get_y(spr),
205
        bbox_left: layer_sprite_get_x(spr) + sprite_get_bbox_left(layer_sprite_get_sprite(spr)),
206
        bbox_top: layer_sprite_get_y(spr) + sprite_get_bbox_top(layer_sprite_get_sprite(spr)),
207
        bbox_right: layer_sprite_get_x(spr) + (sprite_get_bbox_right(layer_sprite_get_sprite(spr)) * layer_sprite_get_xscale(spr)),
208
        bbox_bottom: layer_sprite_get_y(spr) + (sprite_get_bbox_bottom(layer_sprite_get_sprite(spr)) * layer_sprite_get_yscale(spr)),
209
        depth: 0
210
    };
211
    return myreturn;
212
}
213
214
function findspriteinfo_all(arg0, arg1 = "all", arg2 = -99999, arg3 = -99999, arg4 = -99999, arg5 = -99999, arg6 = -99999)
215
{
216
    var spr = findsprite_all(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
217
    var info_all = [];
218
    for (var i = 0; i < array_length(spr); i++)
219
    {
220
        var myreturn = 
221
        {
222
            sprite_index: layer_sprite_get_sprite(spr[i]),
223
            mask_index: layer_sprite_get_sprite(spr[i]),
224
            image_index: layer_sprite_get_index(spr[i]),
225
            image_speed: layer_sprite_get_speed(spr[i]),
226
            image_xscale: layer_sprite_get_xscale(spr[i]),
227
            image_yscale: layer_sprite_get_yscale(spr[i]),
228
            image_angle: layer_sprite_get_angle(spr[i]),
229
            image_blend: layer_sprite_get_blend(spr[i]),
230
            image_alpha: layer_sprite_get_alpha(spr[i]),
231
            sprite_width: sprite_get_width(layer_sprite_get_sprite(spr[i])) * layer_sprite_get_xscale(spr[i]),
232
            sprite_height: sprite_get_height(layer_sprite_get_sprite(spr[i])) * layer_sprite_get_yscale(spr[i]),
233
            x: layer_sprite_get_x(spr[i]),
234
            y: layer_sprite_get_y(spr[i]),
235
            bbox_left: layer_sprite_get_x(spr[i]) + sprite_get_bbox_left(layer_sprite_get_sprite(spr[i])),
236
            bbox_top: layer_sprite_get_y(spr[i]) + sprite_get_bbox_top(layer_sprite_get_sprite(spr[i])),
237
            bbox_right: layer_sprite_get_x(spr[i]) + (sprite_get_bbox_right(layer_sprite_get_sprite(spr[i])) * layer_sprite_get_xscale(spr[i])),
238
            bbox_bottom: layer_sprite_get_y(spr[i]) + (sprite_get_bbox_bottom(layer_sprite_get_sprite(spr[i])) * layer_sprite_get_yscale(spr[i])),
239
            depth: 0
240
        };
241
        array_push(info_all, myreturn);
242
    }
243
    if (array_length(info_all) > 0)
244
    {
245
        return info_all;
246
    }
247
    else
248
    {
249
        show_debug_message_concat("findspriteinfo_all: asset not found:", sprite_get_name(arg0), "| ", arg1);
250
        return [];
251
    }
252
}