Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_scr_exportsprites

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

function
scr_exportsprites(arg0)
{
scr_debug_print("Sprite export called for: " + arg0);
var spritesDumped = ""; for (var i = 0; sprite_exists(i); i++) { if (!sprite_exists(i)) break; var sprite_name = sprite_get_name(i); if (string_pos(arg0, sprite_name) > 0) { spritesDumped += (sprite_name + "\n"); var spr = i; var imageindex_count = sprite_get_number(spr); var spritewidth = sprite_get_width(spr); var spriteheight = sprite_get_height(spr); var origin_x = sprite_get_xoffset(spr); var origin_y = sprite_get_yoffset(spr); var surf = surface_create(spritewidth * imageindex_count, spriteheight); surface_set_target(surf); draw_clear_alpha(c_white, 0); for (var j = 0; j < imageindex_count; j++) draw_sprite(spr, j, (j * spritewidth) + origin_x, origin_y); surface_reset_target(); var ext = ""; if (imageindex_count > 1) ext = "_strip" + string(imageindex_count); var file_name = working_directory + "/spriteDump/" + "chapter" + string(global.chapter) + "/" + arg0 + "/" + sprite_name + ext + ".png"; surface_save(surf, file_name); surface_free(surf); show_debug_message("sprite sheet saved: " + sprite_name); show_debug_message_concat(spritesDumped); clipboard_set_text(spritesDumped); } } } function scr_exportsheets(arg0) { show_debug_message_concat("Sprite export called for: ", arg0); var surfs = []; var mastersurfwidth = 0; var spritesdumped = ""; for (var i = 0; sprite_exists(i); i++) { var sprite_name = sprite_get_name(i); if (string_pos(arg0, sprite_name) > 0) { spritesdumped += ("\n" + sprite_name); var spr = i; var imageindex_count = sprite_get_number(spr); var spritewidth = sprite_get_width(spr) + 12; var spriteheight = sprite_get_height(spr); var origin_x = sprite_get_xoffset(spr); var origin_y = sprite_get_yoffset(spr); var surf_width = max(spritewidth * imageindex_count, string_width(sprite_name) + 20); var surf_height = spriteheight + 48; var surf = surface_create(surf_width, surf_height); mastersurfwidth = max(mastersurfwidth, surf_width); surface_set_target(surf); draw_clear_alpha(c_white, 0); for (var j = 0; j < imageindex_count; j++) { if (imageindex_count > 1) { draw_set_font(fnt_small); draw_text_outline((j * spritewidth) + 1, 1, string(j)); } draw_sprite(spr, j, (j * spritewidth) + origin_x + 10, origin_y); } draw_set_font(fnt_main); draw_text_outline(5, spriteheight + 2, sprite_get_name(i)); surface_reset_target(); array_push(surfs, surf); } } var maxsurfheight = 2500; var surfcount = array_length(surfs); if (surfcount == 0) {
scr_debug_print("No sprites found to dump.");
exit; } var mastersurfs = []; var mastersurf = -4; var drawy = 0; var sheet_index = 0; mastersurf = surface_create(mastersurfwidth, maxsurfheight); surface_set_target(mastersurf); draw_clear_alpha(c_white, 0); surface_reset_target(); for (var i = 0; i < surfcount; i++) { var current_surf = surfs[i]; var current_surf_height = surface_get_height(current_surf); if ((drawy + current_surf_height) > maxsurfheight) { array_push(mastersurfs, mastersurf); mastersurf = surface_create(mastersurfwidth, maxsurfheight); surface_set_target(mastersurf); draw_clear_alpha(c_white, 0); ...
(arg0)
2
{
3
    
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("Sprite export called for: " + arg0);
4
    var spritesDumped = "";
5
    for (var i = 0; sprite_exists(i); i++)
6
    {
7
        if (!sprite_exists(i))
8
            break;
9
        var sprite_name = sprite_get_name(i);
10
        if (string_pos(arg0, sprite_name) > 0)
11
        {
12
            spritesDumped += (sprite_name + "\n");
13
            var spr = i;
14
            var imageindex_count = sprite_get_number(spr);
15
            var spritewidth = sprite_get_width(spr);
16
            var spriteheight = sprite_get_height(spr);
17
            var origin_x = sprite_get_xoffset(spr);
18
            var origin_y = sprite_get_yoffset(spr);
19
            var surf = surface_create(spritewidth * imageindex_count, spriteheight);
20
            surface_set_target(surf);
21
            draw_clear_alpha(c_white, 0);
22
            for (var j = 0; j < imageindex_count; j++)
23
                draw_sprite(spr, j, (j * spritewidth) + origin_x, origin_y);
24
            surface_reset_target();
25
            var ext = "";
26
            if (imageindex_count > 1)
27
                ext = "_strip" + string(imageindex_count);
28
            var file_name = working_directory + "/spriteDump/" + "chapter" + string(global.chapter) + "/" + arg0 + "/" + sprite_name + ext + ".png";
29
            surface_save(surf, file_name);
30
            surface_free(surf);
31
            show_debug_message("sprite sheet saved: " + sprite_name);
32
            show_debug_message_concat(spritesDumped);
33
            clipboard_set_text(spritesDumped);
34
        }
35
    }
36
}
37
38
function scr_exportsheets(arg0)
39
{
40
    show_debug_message_concat("Sprite export called for: ", arg0);
41
    var surfs = [];
42
    var mastersurfwidth = 0;
43
    var spritesdumped = "";
44
    for (var i = 0; sprite_exists(i); i++)
45
    {
46
        var sprite_name = sprite_get_name(i);
47
        if (string_pos(arg0, sprite_name) > 0)
48
        {
49
            spritesdumped += ("\n" + sprite_name);
50
            var spr = i;
51
            var imageindex_count = sprite_get_number(spr);
52
            var spritewidth = sprite_get_width(spr) + 12;
53
            var spriteheight = sprite_get_height(spr);
54
            var origin_x = sprite_get_xoffset(spr);
55
            var origin_y = sprite_get_yoffset(spr);
56
            var surf_width = max(spritewidth * imageindex_count, string_width(sprite_name) + 20);
57
            var surf_height = spriteheight + 48;
58
            var surf = surface_create(surf_width, surf_height);
59
            mastersurfwidth = max(mastersurfwidth, surf_width);
60
            surface_set_target(surf);
61
            draw_clear_alpha(c_white, 0);
62
            for (var j = 0; j < imageindex_count; j++)
63
            {
64
                if (imageindex_count > 1)
65
                {
66
                    draw_set_font(fnt_small);
67
                    draw_text_outline((j * spritewidth) + 1, 1, string(j));
68
                }
69
                draw_sprite(spr, j, (j * spritewidth) + origin_x + 10, origin_y);
70
            }
71
            draw_set_font(fnt_main);
72
            draw_text_outline(5, spriteheight + 2, sprite_get_name(i));
73
            surface_reset_target();
74
            array_push(surfs, surf);
75
        }
76
    }
77
    var maxsurfheight = 2500;
78
    var surfcount = array_length(surfs);
79
    if (surfcount == 0)
80
    {
81
        
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("No sprites found to dump.");
82
        exit;
83
    }
84
    var mastersurfs = [];
85
    var mastersurf = -4;
86
    var drawy = 0;
87
    var sheet_index = 0;
88
    mastersurf = surface_create(mastersurfwidth, maxsurfheight);
89
    surface_set_target(mastersurf);
90
    draw_clear_alpha(c_white, 0);
91
    surface_reset_target();
92
    for (var i = 0; i < surfcount; i++)
93
    {
94
        var current_surf = surfs[i];
95
        var current_surf_height = surface_get_height(current_surf);
96
        if ((drawy + current_surf_height) > maxsurfheight)
97
        {
98
            array_push(mastersurfs, mastersurf);
99
            mastersurf = surface_create(mastersurfwidth, maxsurfheight);
100
            surface_set_target(mastersurf);
101
            draw_clear_alpha(c_white, 0);
102
            surface_reset_target();
103
            drawy = 0;
104
        }
105
        surface_set_target(mastersurf);
106
        draw_surface(current_surf, 0, drawy);
107
        surface_reset_target();
108
        drawy += current_surf_height;
109
    }
110
    if (mastersurf != -4)
111
        array_push(mastersurfs, mastersurf);
112
    var msurfcount = array_length(mastersurfs);
113
    for (var i = 0; i < msurfcount; i++)
114
    {
115
        var file_name = working_directory + "/spriteDump/" + arg0 + "_" + string(i) + ".png";
116
        surface_save(mastersurfs[i], file_name);
117
    }
118
    
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("Exported " + string(msurfcount) + " sprite sheets.");
119
    for (var i = 0; i < surfcount; i++)
120
        surface_free(surfs[i]);
121
    for (var i = 0; i < msurfcount; i++)
122
        surface_free(mastersurfs[i]);
123
    show_debug_message_concat("all sprites dumped:", spritesdumped);
124
}
125
126
function scr_exportsheets_list(arg0, arg1 = [])
127
{
128
    show_debug_message_concat("Sprite export called for: ", arg0);
129
    var surfs = [];
130
    var mastersurfwidth = 0;
131
    var spritesdumped = "";
132
    for (var i = 0; i < array_length(arg1); i++)
133
    {
134
        if (sprite_exists(asset_get_index(arg1[i])))
135
        {
136
            var sprite_name = arg1[i];
137
            spritesdumped += ("\n" + arg1[i]);
138
            var spr = asset_get_index(arg1[i]);
139
            var imageindex_count = sprite_get_number(spr);
140
            var spritewidth = sprite_get_width(spr) + 12;
141
            var spriteheight = sprite_get_height(spr);
142
            var origin_x = sprite_get_xoffset(spr);
143
            var origin_y = sprite_get_yoffset(spr);
144
            var surf_width = max(spritewidth * imageindex_count, string_width(sprite_name) + 20);
145
            var surf_height = spriteheight + 48;
146
            var surf = surface_create(surf_width, surf_height);
147
            mastersurfwidth = max(mastersurfwidth, surf_width);
148
            surface_set_target(surf);
149
            draw_clear_alpha(c_white, 0);
150
            for (var j = 0; j < imageindex_count; j++)
151
            {
152
                if (imageindex_count > 1)
153
                {
154
                    draw_set_font(fnt_small);
155
                    draw_text_outline((j * spritewidth) + 1, 1, string(j));
156
                }
157
                draw_sprite(spr, j, (j * spritewidth) + origin_x + 10, origin_y);
158
            }
159
            draw_set_font(fnt_main);
160
            draw_text_outline(5, spriteheight + 2, sprite_name);
161
            surface_reset_target();
162
            array_push(surfs, surf);
163
        }
164
    }
165
    var maxsurfheight = 2500;
166
    var surfcount = array_length(surfs);
167
    if (surfcount == 0)
168
    {
169
        
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("No sprites found to dump.");
170
        exit;
171
    }
172
    var mastersurfs = [];
173
    var mastersurf = -4;
174
    var drawy = 0;
175
    var sheet_index = 0;
176
    mastersurf = surface_create(mastersurfwidth, maxsurfheight);
177
    surface_set_target(mastersurf);
178
    draw_clear_alpha(c_white, 0);
179
    surface_reset_target();
180
    for (var i = 0; i < surfcount; i++)
181
    {
182
        var current_surf = surfs[i];
183
        var current_surf_height = surface_get_height(current_surf);
184
        if ((drawy + current_surf_height) > maxsurfheight)
185
        {
186
            array_push(mastersurfs, mastersurf);
187
            mastersurf = surface_create(mastersurfwidth, maxsurfheight);
188
            surface_set_target(mastersurf);
189
            draw_clear_alpha(c_white, 0);
190
            surface_reset_target();
191
            drawy = 0;
192
        }
193
        surface_set_target(mastersurf);
194
        draw_surface(current_surf, 0, drawy);
195
        surface_reset_target();
196
        drawy += current_surf_height;
197
    }
198
    if (mastersurf != -4)
199
        array_push(mastersurfs, mastersurf);
200
    var msurfcount = array_length(mastersurfs);
201
    for (var i = 0; i < msurfcount; i++)
202
    {
203
        var file_name = working_directory + "/spriteDump/" + arg0 + "_" + string(i) + ".png";
204
        surface_save(mastersurfs[i], file_name);
205
    }
206
    
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
("Exported " + string(msurfcount) + " sprite sheets.");
207
    for (var i = 0; i < surfcount; i++)
208
        surface_free(surfs[i]);
209
    for (var i = 0; i < msurfcount; i++)
210
        surface_free(mastersurfs[i]);
211
    show_debug_message_concat("all sprites dumped:", spritesdumped);
212
}