Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_d3d_model_save

(view raw script w/o annotations or w/e)
1
function d3d_model_save(arg0, arg1)
2
{
3
    var __ind = arg0;
4
    var __fname = arg1;
5
    var __file = file_text_open_write(__fname);
6
    if (__file == -1)
7
        return -1;
8
    var __vertexsize = 36;
9
    var __numthings = 0;
10
    var __numpointverts = 0;
11
    var __numlineverts = 0;
12
    var __numtriverts = 0;
13
    if (__ind[UnknownEnum.Value_0] != undefined)
14
    {
15
        var __buffpos = buffer_tell(__ind[UnknownEnum.Value_0]);
16
        if (__buffpos > 0)
17
            __numthings += 2;
18
        __numpointverts = __buffpos / __vertexsize;
19
        __numthings += __numpointverts;
20
    }
21
    if (__ind[UnknownEnum.Value_1] != undefined)
22
    {
23
        var __buffpos = buffer_tell(__ind[UnknownEnum.Value_1]);
24
        if (__buffpos > 0)
25
            __numthings += 2;
26
        __numlineverts = __buffpos / __vertexsize;
27
        __numthings += __numlineverts;
28
    }
29
    if (__ind[UnknownEnum.Value_2] != undefined)
30
    {
31
        var __buffpos = buffer_tell(__ind[UnknownEnum.Value_2]);
32
        if (__buffpos > 0)
33
            __numthings += 2;
34
        __numtriverts = __buffpos / __vertexsize;
35
        __numthings += __numtriverts;
36
    }
37
    file_text_write_string(__file, "100");
38
    file_text_writeln(__file);
39
    file_text_write_string(__file, string_format(__numthings, 0, 0));
40
    file_text_writeln(__file);
41
    if (__ind[UnknownEnum.Value_0] != undefined)
42
    {
43
        var __buf = __ind[UnknownEnum.Value_0];
44
        if (__numpointverts > 0)
45
        {
46
            file_text_write_string(__file, "0 " + string_format(1, 10, 4) + " 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
47
            file_text_writeln(__file);
48
            buffer_seek(__buf, buffer_seek_start, 0);
49
            for (var __i = 0; __i < __numpointverts; __i++)
50
            {
51
                var __x = buffer_read(__buf, buffer_f32);
52
                var __y = buffer_read(__buf, buffer_f32);
53
                var __z = buffer_read(__buf, buffer_f32);
54
                var __nx = buffer_read(__buf, buffer_f32);
55
                var __ny = buffer_read(__buf, buffer_f32);
56
                var __nz = buffer_read(__buf, buffer_f32);
57
                var __colalpha = buffer_read(__buf, buffer_u32);
58
                var __u = buffer_read(__buf, buffer_f32);
59
                var __v = buffer_read(__buf, buffer_f32);
60
                var __col = __colalpha & 16777215;
61
                var __alpha = ((__colalpha >> 24) & 255) / 255;
62
                file_text_write_string(__file, "9 " + string_format(__x, 10, 4) + " " + string_format(__y, 10, 4) + " " + string_format(__z, 10, 4) + " " + string_format(__nx, 10, 4) + " " + string_format(__ny, 10, 4) + " " + string_format(__nz, 10, 4) + " " + string_format(__u, 10, 4) + " " + string_format(__v, 10, 4) + " " + string_format(__col, 10, 4) + " " + string_format(__alpha, 10, 4));
63
                file_text_writeln(__file);
64
            }
65
            file_text_write_string(__file, "1 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
66
            file_text_writeln(__file);
67
        }
68
    }
69
    if (__ind[UnknownEnum.Value_1] != undefined)
70
    {
71
        var __buf = __ind[UnknownEnum.Value_1];
72
        if (__numlineverts > 0)
73
        {
74
            file_text_write_string(__file, "0 " + string_format(2, 10, 4) + " 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
75
            file_text_writeln(__file);
76
            buffer_seek(__buf, buffer_seek_start, 0);
77
            for (var __i = 0; __i < __numlineverts; __i++)
78
            {
79
                var __x = buffer_read(__buf, buffer_f32);
80
                var __y = buffer_read(__buf, buffer_f32);
81
                var __z = buffer_read(__buf, buffer_f32);
82
                var __nx = buffer_read(__buf, buffer_f32);
83
                var __ny = buffer_read(__buf, buffer_f32);
84
                var __nz = buffer_read(__buf, buffer_f32);
85
                var __colalpha = buffer_read(__buf, buffer_u32);
86
                var __u = buffer_read(__buf, buffer_f32);
87
                var __v = buffer_read(__buf, buffer_f32);
88
                var __col = __colalpha & 16777215;
89
                var __alpha = ((__colalpha >> 24) & 255) / 255;
90
                file_text_write_string(__file, "9 " + string_format(__x, 10, 4) + " " + string_format(__y, 10, 4) + " " + string_format(__z, 10, 4) + " " + string_format(__nx, 10, 4) + " " + string_format(__ny, 10, 4) + " " + string_format(__nz, 10, 4) + " " + string_format(__u, 10, 4) + " " + string_format(__v, 10, 4) + " " + string_format(__col, 10, 4) + " " + string_format(__alpha, 10, 4));
91
                file_text_writeln(__file);
92
            }
93
            file_text_write_string(__file, "1 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
94
            file_text_writeln(__file);
95
        }
96
    }
97
    if (__ind[UnknownEnum.Value_2] != undefined)
98
    {
99
        var __buf = __ind[UnknownEnum.Value_2];
100
        if (__numtriverts > 0)
101
        {
102
            file_text_write_string(__file, "0 " + string_format(4, 10, 4) + " 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
103
            file_text_writeln(__file);
104
            buffer_seek(__buf, buffer_seek_start, 0);
105
            for (var __i = 0; __i < __numtriverts; __i++)
106
            {
107
                var __x = buffer_read(__buf, buffer_f32);
108
                var __y = buffer_read(__buf, buffer_f32);
109
                var __z = buffer_read(__buf, buffer_f32);
110
                var __nx = buffer_read(__buf, buffer_f32);
111
                var __ny = buffer_read(__buf, buffer_f32);
112
                var __nz = buffer_read(__buf, buffer_f32);
113
                var __colalpha = buffer_read(__buf, buffer_u32);
114
                var __u = buffer_read(__buf, buffer_f32);
115
                var __v = buffer_read(__buf, buffer_f32);
116
                var __col = __colalpha & 16777215;
117
                var __alpha = ((__colalpha >> 24) & 255) / 255;
118
                file_text_write_string(__file, "9 " + string_format(__x, 10, 4) + " " + string_format(__y, 10, 4) + " " + string_format(__z, 10, 4) + " " + string_format(__nx, 10, 4) + " " + string_format(__ny, 10, 4) + " " + string_format(__nz, 10, 4) + " " + string_format(__u, 10, 4) + " " + string_format(__v, 10, 4) + " " + string_format(__col, 10, 4) + " " + string_format(__alpha, 10, 4));
119
                file_text_writeln(__file);
120
            }
121
            file_text_write_string(__file, "1 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000 0000000000.0000");
122
            file_text_writeln(__file);
123
        }
124
    }
125
    file_text_close(__file);
126
}
127
128
enum UnknownEnum
129
{
130
    Value_0,
131
    Value_1,
132
    Value_2
133
}