Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript___d3d_model_add_vertex

(view raw script w/o annotations or w/e)
1
function __d3d_model_add_vertex(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)
2
{
3
    var m = arg0;
4
    var i = UnknownEnum.Value_2;
5
    var uv_i = UnknownEnum.Value_5;
6
    var colarrayi = UnknownEnum.Value_18;
7
    var colnum = UnknownEnum.Value_15;
8
    switch (m[UnknownEnum.Value_12])
9
    {
10
        case 1:
11
            i = UnknownEnum.Value_0;
12
            uv_i = UnknownEnum.Value_3;
13
            colarrayi = UnknownEnum.Value_16;
14
            colnum = UnknownEnum.Value_13;
15
            break;
16
        case 2:
17
        case 3:
18
            i = UnknownEnum.Value_1;
19
            uv_i = UnknownEnum.Value_4;
20
            colarrayi = UnknownEnum.Value_17;
21
            colnum = UnknownEnum.Value_14;
22
            break;
23
    }
24
    var colarray = m[colarrayi];
25
    var b = m[i];
26
    if (b == undefined)
27
    {
28
        b = buffer_create(36, buffer_grow, 1);
29
        array_set(m, i, b);
30
    }
31
    var uvb = m[uv_i];
32
    if (uvb == undefined)
33
    {
34
        uvb = buffer_create(8, buffer_grow, 1);
35
        array_set(m, uv_i, uvb);
36
    }
37
    var globalcol = false;
38
    if (arg7 == 65536)
39
        globalcol = true;
40
    var c = m[UnknownEnum.Value_11];
41
    switch (m[UnknownEnum.Value_12])
42
    {
43
        case 1:
44
        case 2:
45
        case 4:
46
            buffer_write(b, buffer_f32, arg1);
47
            buffer_write(b, buffer_f32, arg2);
48
            buffer_write(b, buffer_f32, arg3);
49
            buffer_write(b, buffer_f32, arg4);
50
            buffer_write(b, buffer_f32, arg5);
51
            buffer_write(b, buffer_f32, arg6);
52
            buffer_write(b, buffer_u32, arg7);
53
            buffer_write(b, buffer_f32, arg8);
54
            buffer_write(b, buffer_f32, arg9);
55
            buffer_write(uvb, buffer_f32, arg8);
56
            buffer_write(uvb, buffer_f32, arg9);
57
            c++;
58
            if (globalcol)
59
            {
60
                colarray[m[colnum]] = buffer_tell(b) - 12;
61
                array_set_post(m, colnum, array_get(m, colnum) + 1);
62
            }
63
            break;
64
        case 3:
65
            if (c >= 2)
66
            {
67
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_19]);
68
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_20]);
69
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_21]);
70
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_22]);
71
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_23]);
72
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_24]);
73
                buffer_write(b, buffer_u32, m[UnknownEnum.Value_25]);
74
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_26]);
75
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_27]);
76
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_26]);
77
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_27]);
78
                c++;
79
                if (globalcol)
80
                {
81
                    colarray[m[colnum]] = buffer_tell(b) - 12;
82
                    array_set_post(m, colnum, array_get(m, colnum) + 1);
83
                }
84
            }
85
            array_set(m, UnknownEnum.Value_19, arg1);
86
            array_set(m, UnknownEnum.Value_20, arg2);
87
            array_set(m, UnknownEnum.Value_21, arg3);
88
            array_set(m, UnknownEnum.Value_22, arg4);
89
            array_set(m, UnknownEnum.Value_23, arg5);
90
            array_set(m, UnknownEnum.Value_24, arg6);
91
            array_set(m, UnknownEnum.Value_25, arg7);
92
            array_set(m, UnknownEnum.Value_26, arg8);
93
            array_set(m, UnknownEnum.Value_27, arg9);
94
            buffer_write(b, buffer_f32, arg1);
95
            buffer_write(b, buffer_f32, arg2);
96
            buffer_write(b, buffer_f32, arg3);
97
            buffer_write(b, buffer_f32, arg4);
98
            buffer_write(b, buffer_f32, arg5);
99
            buffer_write(b, buffer_f32, arg6);
100
            buffer_write(b, buffer_u32, arg7);
101
            buffer_write(b, buffer_f32, arg8);
102
            buffer_write(b, buffer_f32, arg9);
103
            buffer_write(uvb, buffer_f32, arg8);
104
            buffer_write(uvb, buffer_f32, arg9);
105
            c++;
106
            if (globalcol)
107
            {
108
                colarray[m[colnum]] = buffer_tell(b) - 12;
109
                array_set_post(m, colnum, array_get(m, colnum) + 1);
110
            }
111
            break;
112
        case 5:
113
            if (c >= 3)
114
            {
115
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_19]);
116
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_20]);
117
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_21]);
118
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_22]);
119
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_23]);
120
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_24]);
121
                buffer_write(b, buffer_u32, m[UnknownEnum.Value_25]);
122
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_26]);
123
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_27]);
124
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_26]);
125
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_27]);
126
                c++;
127
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_28]);
128
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_29]);
129
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_30]);
130
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_31]);
131
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_32]);
132
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_33]);
133
                buffer_write(b, buffer_u32, m[UnknownEnum.Value_34]);
134
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_35]);
135
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_36]);
136
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_35]);
137
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_36]);
138
                c++;
139
                if (globalcol)
140
                {
141
                    colarray[m[colnum]] = buffer_tell(b) - 48;
142
                    array_set_post(m, colnum, array_get(m, colnum) + 1);
143
                    colarray[m[colnum]] = buffer_tell(b) - 12;
144
                    array_set_post(m, colnum, array_get(m, colnum) + 1);
145
                }
146
            }
147
            array_set(m, UnknownEnum.Value_19, m[UnknownEnum.Value_28]);
148
            array_set(m, UnknownEnum.Value_20, m[UnknownEnum.Value_29]);
149
            array_set(m, UnknownEnum.Value_21, m[UnknownEnum.Value_30]);
150
            array_set(m, UnknownEnum.Value_22, m[UnknownEnum.Value_31]);
151
            array_set(m, UnknownEnum.Value_23, m[UnknownEnum.Value_32]);
152
            array_set(m, UnknownEnum.Value_24, m[UnknownEnum.Value_33]);
153
            array_set(m, UnknownEnum.Value_25, m[UnknownEnum.Value_34]);
154
            array_set(m, UnknownEnum.Value_26, m[UnknownEnum.Value_35]);
155
            array_set(m, UnknownEnum.Value_27, m[UnknownEnum.Value_36]);
156
            array_set(m, UnknownEnum.Value_28, arg1);
157
            array_set(m, UnknownEnum.Value_29, arg2);
158
            array_set(m, UnknownEnum.Value_30, arg3);
159
            array_set(m, UnknownEnum.Value_31, arg4);
160
            array_set(m, UnknownEnum.Value_32, arg5);
161
            array_set(m, UnknownEnum.Value_33, arg6);
162
            array_set(m, UnknownEnum.Value_34, arg7);
163
            array_set(m, UnknownEnum.Value_35, arg8);
164
            array_set(m, UnknownEnum.Value_36, arg9);
165
            buffer_write(b, buffer_f32, arg1);
166
            buffer_write(b, buffer_f32, arg2);
167
            buffer_write(b, buffer_f32, arg3);
168
            buffer_write(b, buffer_f32, arg4);
169
            buffer_write(b, buffer_f32, arg5);
170
            buffer_write(b, buffer_f32, arg6);
171
            buffer_write(b, buffer_u32, arg7);
172
            buffer_write(b, buffer_f32, arg8);
173
            buffer_write(b, buffer_f32, arg9);
174
            buffer_write(uvb, buffer_f32, arg8);
175
            buffer_write(uvb, buffer_f32, arg9);
176
            if (globalcol)
177
            {
178
                colarray[m[colnum]] = buffer_tell(b) - 12;
179
                array_set_post(m, colnum, array_get(m, colnum) + 1);
180
            }
181
            c++;
182
            break;
183
        case 6:
184
            if (c == 0)
185
            {
186
                array_set(m, UnknownEnum.Value_19, arg1);
187
                array_set(m, UnknownEnum.Value_20, arg2);
188
                array_set(m, UnknownEnum.Value_21, arg3);
189
                array_set(m, UnknownEnum.Value_22, arg4);
190
                array_set(m, UnknownEnum.Value_23, arg5);
191
                array_set(m, UnknownEnum.Value_24, arg6);
192
                array_set(m, UnknownEnum.Value_25, arg7);
193
                array_set(m, UnknownEnum.Value_26, arg8);
194
                array_set(m, UnknownEnum.Value_27, arg9);
195
            }
196
            if (c >= 3)
197
            {
198
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_19]);
199
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_20]);
200
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_21]);
201
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_22]);
202
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_23]);
203
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_24]);
204
                buffer_write(b, buffer_u32, m[UnknownEnum.Value_25]);
205
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_26]);
206
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_27]);
207
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_26]);
208
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_27]);
209
                c++;
210
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_28]);
211
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_29]);
212
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_30]);
213
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_31]);
214
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_32]);
215
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_33]);
216
                buffer_write(b, buffer_u32, m[UnknownEnum.Value_34]);
217
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_35]);
218
                buffer_write(b, buffer_f32, m[UnknownEnum.Value_36]);
219
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_35]);
220
                buffer_write(uvb, buffer_f32, m[UnknownEnum.Value_36]);
221
                c++;
222
                if (globalcol)
223
                {
224
                    colarray[m[colnum]] = buffer_tell(b) - 48;
225
                    array_set_post(m, colnum, array_get(m, colnum) + 1);
226
                    colarray[m[colnum]] = buffer_tell(b) - 12;
227
                    array_set_post(m, colnum, array_get(m, colnum) + 1);
228
                }
229
            }
230
            array_set(m, UnknownEnum.Value_28, arg1);
231
            array_set(m, UnknownEnum.Value_29, arg2);
232
            array_set(m, UnknownEnum.Value_30, arg3);
233
            array_set(m, UnknownEnum.Value_31, arg4);
234
            array_set(m, UnknownEnum.Value_32, arg5);
235
            array_set(m, UnknownEnum.Value_33, arg6);
236
            array_set(m, UnknownEnum.Value_34, arg7);
237
            array_set(m, UnknownEnum.Value_35, arg8);
238
            array_set(m, UnknownEnum.Value_36, arg9);
239
            buffer_write(b, buffer_f32, arg1);
240
            buffer_write(b, buffer_f32, arg2);
241
            buffer_write(b, buffer_f32, arg3);
242
            buffer_write(b, buffer_f32, arg4);
243
            buffer_write(b, buffer_f32, arg5);
244
            buffer_write(b, buffer_f32, arg6);
245
            buffer_write(b, buffer_u32, arg7);
246
            buffer_write(b, buffer_f32, arg8);
247
            buffer_write(b, buffer_f32, arg9);
248
            buffer_write(uvb, buffer_f32, arg8);
249
            buffer_write(uvb, buffer_f32, arg9);
250
            c++;
251
            if (globalcol)
252
            {
253
                colarray[m[colnum]] = buffer_tell(b) - 12;
254
                array_set_post(m, colnum, array_get(m, colnum) + 1);
255
            }
256
            break;
257
    }
258
    array_set(m, UnknownEnum.Value_11, c);
259
    array_set(m, colarrayi, colarray);
260
}
261
262
enum UnknownEnum
263
{
264
    Value_0,
265
    Value_1,
266
    Value_2,
267
    Value_3,
268
    Value_4,
269
    Value_5,
270
    Value_11 = 11,
271
    Value_12,
272
    Value_13,
273
    Value_14,
274
    Value_15,
275
    Value_16,
276
    Value_17,
277
    Value_18,
278
    Value_19,
279
    Value_20,
280
    Value_21,
281
    Value_22,
282
    Value_23,
283
    Value_24,
284
    Value_25,
285
    Value_26,
286
    Value_27,
287
    Value_28,
288
    Value_29,
289
    Value_30,
290
    Value_31,
291
    Value_32,
292
    Value_33,
293
    Value_34,
294
    Value_35,
295
    Value_36
296
}