Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_d3d_draw_ellipsoid

(view raw script w/o annotations or w/e)
1
function d3d_draw_ellipsoid(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)
2
{
3
    var __x1 = arg0;
4
    var __y1 = arg1;
5
    var __z1 = arg2;
6
    var __x2 = arg3;
7
    var __y2 = arg4;
8
    var __z2 = arg5;
9
    var __tex = arg6;
10
    var __hrepeat = arg7;
11
    var __vrepeat = arg8;
12
    var __steps = arg9;
13
    if (__steps < 3)
14
        __steps = 3;
15
    if (__steps > 128)
16
        __steps = 128;
17
    var __cc;
18
    __cc[__steps] = 0;
19
    var __ss;
20
    __ss[__steps] = 0;
21
    for (var __i = 0; __i <= __steps; __i++)
22
    {
23
        var __rad = (__i * 2 * pi) / __steps;
24
        __cc[__i] = cos(__rad);
25
        __ss[__i] = sin(__rad);
26
    }
27
    var __mx = (__x2 + __x1) / 2;
28
    var __my = (__y2 + __y1) / 2;
29
    var __mz = (__z2 + __z1) / 2;
30
    var __rx = (__x2 - __x1) / 2;
31
    var __ry = (__y2 - __y1) / 2;
32
    var __rz = (__z2 - __z1) / 2;
33
    var __rows = floor((__steps + 1) / 2);
34
    var __oldrep = gpu_get_texrepeat();
35
    gpu_set_texrepeat(true);
36
    for (var __j = 0; __j <= (__rows - 1); __j++)
37
    {
38
        var __row1rad = (__j * pi) / __rows;
39
        var __row2rad = ((__j + 1) * pi) / __rows;
40
        var __rh1 = cos(__row1rad);
41
        var __rd1 = sin(__row1rad);
42
        var __rh2 = cos(__row2rad);
43
        var __rd2 = sin(__row2rad);
44
        d3d_primitive_begin_texture(5, __tex);
45
        for (var __i = 0; __i <= __steps; __i++)
46
        {
47
            d3d_vertex_normal_texture(__mx + (__rx * __rd1 * __cc[__i]), __my + (__ry * __rd1 * __ss[__i]), __mz + (__rz * __rh1), __rd1 * __cc[__i], __rd1 * __ss[__i], __rh1, (__hrepeat * __i) / __steps, (__j * __vrepeat) / __rows);
48
            d3d_vertex_normal_texture(__mx + (__rx * __rd2 * __cc[__i]), __my + (__ry * __rd2 * __ss[__i]), __mz + (__rz * __rh2), __rd2 * __cc[__i], __rd2 * __ss[__i], __rh2, (__hrepeat * __i) / __steps, ((__j + 1) * __vrepeat) / __rows);
49
        }
50
        d3d_primitive_end();
51
    }
52
    gpu_set_texrepeat(__oldrep);
53
}