Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_fireworks_manager_Other_10

(view raw script w/o annotations or w/e)
1
for (var i = 0; i < 3; i++)
2
{
3
    var current_sprite = current_sprites[i];
4
    var resolution_factor = 1;
5
    if (ds_map_exists(global.firework_sprite_pixel_data, current_sprite))
6
        continue;
7
    var h_pixels = sprite_get_width(current_sprite) * resolution_factor;
8
    var v_pixels = sprite_get_height(current_sprite) * resolution_factor;
9
    var x_offset = sprite_get_xoffset(current_sprite) * resolution_factor;
10
    var y_offset = sprite_get_yoffset(current_sprite) * resolution_factor;
11
    var surf = surface_create(h_pixels, v_pixels);
12
    surface_set_target(surf);
13
    draw_clear_alpha(c_black, 0);
14
    draw_sprite_ext(current_sprite, 0, x_offset, y_offset, resolution_factor, resolution_factor, 0, c_white, 1);
15
    surface_reset_target();
16
    var pixels = 0;
17
    var pixelx = [];
18
    var pixely = [];
19
    var pixelrgb = [];
20
    var pixelalpha = [];
21
    for (var _x = 0; _x < h_pixels; _x++)
22
    {
23
        for (var _y = 0; _y < v_pixels; _y++)
24
        {
25
            var col = surface_getpixel_ext(surf, _x, _y);
26
            var _alpha = (col >> 24) & 255;
27
            if (_alpha == 0)
28
                continue;
29
            var _blue = (col >> 16) & 255;
30
            var _green = (col >> 8) & 255;
31
            var _red = col & 255;
32
            pixelrgb[pixels] = make_colour_rgb(_red, _green, _blue);
33
            pixelalpha[pixels] = _alpha;
34
            pixelx[pixels] = _x - x_offset;
35
            pixely[pixels] = _y - y_offset;
36
            pixels++;
37
        }
38
    }
39
    surface_free(surf);
40
    var width = h_pixels;
41
    var height = v_pixels;
42
    ds_map_add(global.firework_sprite_pixel_data, current_sprite, [pixels, pixelx, pixely, width, height, pixelrgb, pixelalpha]);
43
}