Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_reflection_shader_complex_Draw_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
with (other)
4
{
5
    surface_set_target(reflection_surf);
6
    draw_clear_alpha(c_black, 0);
7
    shader_set(sh_reflection_hotel);
8
    var alpha_uniform = shader_get_uniform(sh_reflection_hotel, "Alpha");
9
    shader_set_uniform_f(alpha_uniform, 0.75);
10
    var y_offset;
11
    with (obj_npc_base)
12
    {
13
        if (object_index != obj_npc_handlord)
14
        {
15
            var sprite_uvs = sprite_get_uvs(sprite_index, image_index);
16
            shader_uvs = shader_get_uniform(sh_reflection_hotel, "spriteUVs");
17
            shader_set_uniform_f(shader_uvs, sprite_uvs[0], sprite_uvs[1], sprite_uvs[2], sprite_uvs[3]);
18
            y_offset = 0;
19
            if (object_index == obj_npc_complex_lobby_lad)
20
                y_offset = 2;
21
            draw_set_blend_mode_ext(bm_max, bm_inv_src_alpha);
22
            draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - y_offset - __view_get(e__VW.YView, 0), 1, -1, 0, c_white, 1);
23
            draw_set_blend_mode(bm_normal);
24
        }
25
    }
26
    with (obj_complex_plant)
27
    {
28
        var sprite_uvs = sprite_get_uvs(sprite_index, image_index);
29
        shader_uvs = shader_get_uniform(sh_reflection_hotel, "spriteUVs");
30
        shader_set_uniform_f(shader_uvs, sprite_uvs[0], sprite_uvs[1], sprite_uvs[2], sprite_uvs[3]);
31
        y_offset = 5;
32
        if (object_index == obj_npc_complex_lobby_lad)
33
            y_offset = 2;
34
        draw_set_blend_mode_ext(bm_max, bm_inv_src_alpha);
35
        draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - y_offset - __view_get(e__VW.YView, 0), 1, -1, 0, c_white, 1);
36
        draw_set_blend_mode(bm_normal);
37
    }
38
    shader_reset();
39
    draw_set_blend_mode(bm_subtract);
40
    with (obj_pl)
41
        draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - __view_get(e__VW.YView, 0), 1, -1, 0, c_black, 1);
42
    if (global.party_member != -4)
43
    {
44
        with (global.party_member)
45
            draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - y_offset - __view_get(e__VW.YView, 0), 1, -1, 0, c_white, 1);
46
    }
47
    draw_set_blend_mode(bm_normal);
48
    shader_set(sh_reflection_hotel);
49
    with (obj_pl)
50
    {
51
        var sprite_uvs = sprite_get_uvs(sprite_index, image_index);
52
        shader_uvs = shader_get_uniform(sh_reflection_hotel, "spriteUVs");
53
        shader_set_uniform_f(shader_uvs, sprite_uvs[0], sprite_uvs[1], sprite_uvs[2], sprite_uvs[3]);
54
        draw_set_blend_mode_ext(bm_max, bm_inv_src_alpha);
55
        draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - __view_get(e__VW.YView, 0), 1, -1, 0, c_white, 2);
56
        draw_set_blend_mode(bm_normal);
57
    }
58
    if (global.party_member != -4)
59
    {
60
        with (global.party_member)
61
        {
62
            var sprite_uvs = sprite_get_uvs(sprite_index, image_index);
63
            shader_uvs = shader_get_uniform(sh_reflection_hotel, "spriteUVs");
64
            shader_set_uniform_f(shader_uvs, sprite_uvs[0], sprite_uvs[1], sprite_uvs[2], sprite_uvs[3]);
65
            draw_set_blend_mode_ext(bm_max, bm_inv_src_alpha);
66
            draw_sprite_ext(sprite_index, -1, x - __view_get(e__VW.XView, 0), (y + (sprite_height * 2)) - (sprite_yoffset * 2) - y_offset - __view_get(e__VW.YView, 0), 1, -1, 0, c_white, 1);
67
            draw_set_blend_mode(bm_normal);
68
        }
69
    }
70
    shader_reset();
71
    draw_set_blend_mode(bm_subtract);
72
    draw_sprite_ext(spr_complex_reflection_mask_1, 0, -__view_get(e__VW.XView, 0), -__view_get(e__VW.YView, 0), 4, 4, 0, c_white, 1);
73
    with (obj_complex_plant)
74
    {
75
        if (y > obj_pl.y)
76
            draw_sprite(sprite_index, image_index, x - __view_get(e__VW.XView, 0), y - __view_get(e__VW.YView, 0));
77
    }
78
    draw_set_blend_mode(bm_normal);
79
    surface_reset_target();
80
    draw_surface(reflection_surf, __view_get(e__VW.XView, 0), __view_get(e__VW.YView, 0));
81
}
82
83
enum e__VW
84
{
85
    XView,
86
    YView,
87
    WView,
88
    HView,
89
    Angle,
90
    HBorder,
91
    VBorder,
92
    HSpeed,
93
    VSpeed,
94
    Object,
95
    Visible,
96
    XPort,
97
    YPort,
98
    WPort,
99
    HPort,
100
    Camera,
101
    SurfaceID
102
}