Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_scr_selfshadow

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

function
scr_selfshadow(arg0 = x, arg1 = y, arg2 = image_xscale)
{ if (i_ex(obj_sunshadows)) { if (obj_sunshadows.evening_mode && !selfshadow_override) { var _sprname = sprite_get_name(sprite_index); var _cache = obj_sunshadows.shadow_assetcache; var _sprite_cached = variable_struct_get(_cache, _sprname); var _finalsprite; if (is_undefined(_sprite_cached) || is_undefined(variable_struct_get(_sprite_cached, "selfshadow"))) { var _spritelookup = asset_get_index(sprite_get_name(sprite_index) + "_shadow"); if (is_undefined(_sprite_cached)) { variable_struct_set(_cache, _sprname, { selfshadow: _spritelookup }); } else { variable_struct_get(_cache, _sprname).selfshadow = _spritelookup; } _finalsprite = _spritelookup; } else { _finalsprite = _sprite_cached.selfshadow; } shader_replace_simple_set_hook(25); with (obj_sunshadows) shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend); if (_finalsprite != -1) draw_sprite_ext(_finalsprite, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha); shader_replace_simple_reset_hook(); } else { shader_replace_simple_set_hook(25); with (obj_sunshadows) shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend); draw_sprite_ext(sprite_index, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha); shader_replace_simple_reset_hook(); } } } function scr_addtoselfshadows(arg0 = true, arg1 = id, arg2 = false, arg3 = false) { selfshadow_override = false; with (obj_sunshadows) array_push(selfshadow_instances, arg1); if (arg2) { with (obj_sunshadows) array_push(dropshadow_instances, arg1); } if (arg3) { with (obj_sunshadows) array_push(highlight_instances, arg1); } if (arg0) { draw_func = method(id, function() { draw_self();
scr_selfshadow();
}); } }
(arg0 = x, arg1 = y, arg2 = image_xscale)
2
{
3
    if (i_ex(obj_sunshadows))
4
    {
5
        if (obj_sunshadows.evening_mode && !selfshadow_override)
6
        {
7
            var _sprname = sprite_get_name(sprite_index);
8
            var _cache = obj_sunshadows.shadow_assetcache;
9
            var _sprite_cached = variable_struct_get(_cache, _sprname);
10
            var _finalsprite;
11
            if (is_undefined(_sprite_cached) || is_undefined(variable_struct_get(_sprite_cached, "selfshadow")))
12
            {
13
                var _spritelookup = asset_get_index(sprite_get_name(sprite_index) + "_shadow");
14
                if (is_undefined(_sprite_cached))
15
                {
16
                    variable_struct_set(_cache, _sprname, 
17
                    {
18
                        selfshadow: _spritelookup
19
                    });
20
                }
21
                else
22
                {
23
                    variable_struct_get(_cache, _sprname).selfshadow = _spritelookup;
24
                }
25
                _finalsprite = _spritelookup;
26
            }
27
            else
28
            {
29
                _finalsprite = _sprite_cached.selfshadow;
30
            }
31
            shader_replace_simple_set_hook(25);
32
            with (obj_sunshadows)
33
                shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend);
34
            if (_finalsprite != -1)
35
                draw_sprite_ext(_finalsprite, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
36
            shader_replace_simple_reset_hook();
37
        }
38
        else
39
        {
40
            shader_replace_simple_set_hook(25);
41
            with (obj_sunshadows)
42
                shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend);
43
            draw_sprite_ext(sprite_index, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
44
            shader_replace_simple_reset_hook();
45
        }
46
    }
47
}
48
49
function scr_addtoselfshadows(arg0 = true, arg1 = id, arg2 = false, arg3 = false)
50
{
51
    selfshadow_override = false;
52
    with (obj_sunshadows)
53
        array_push(selfshadow_instances, arg1);
54
    if (arg2)
55
    {
56
        with (obj_sunshadows)
57
            array_push(dropshadow_instances, arg1);
58
    }
59
    if (arg3)
60
    {
61
        with (obj_sunshadows)
62
            array_push(highlight_instances, arg1);
63
    }
64
    if (arg0)
65
    {
66
        draw_func = method(id, function()
67
        {
68
            draw_self();
69
            
scr_selfshadow
scr_selfshadow

function
scr_selfshadow(arg0 = x, arg1 = y, arg2 = image_xscale)
{ if (i_ex(obj_sunshadows)) { if (obj_sunshadows.evening_mode && !selfshadow_override) { var _sprname = sprite_get_name(sprite_index); var _cache = obj_sunshadows.shadow_assetcache; var _sprite_cached = variable_struct_get(_cache, _sprname); var _finalsprite; if (is_undefined(_sprite_cached) || is_undefined(variable_struct_get(_sprite_cached, "selfshadow"))) { var _spritelookup = asset_get_index(sprite_get_name(sprite_index) + "_shadow"); if (is_undefined(_sprite_cached)) { variable_struct_set(_cache, _sprname, { selfshadow: _spritelookup }); } else { variable_struct_get(_cache, _sprname).selfshadow = _spritelookup; } _finalsprite = _spritelookup; } else { _finalsprite = _sprite_cached.selfshadow; } shader_replace_simple_set_hook(25); with (obj_sunshadows) shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend); if (_finalsprite != -1) draw_sprite_ext(_finalsprite, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha); shader_replace_simple_reset_hook(); } else { shader_replace_simple_set_hook(25); with (obj_sunshadows) shader_set_uniform_f(u_shadowblend, shadowblend_r, shadowblend_g, shadowblend_b, alpha_shadowblend); draw_sprite_ext(sprite_index, image_index, arg0, arg1, image_xscale, image_yscale, image_angle, image_blend, image_alpha); shader_replace_simple_reset_hook(); } } } function scr_addtoselfshadows(arg0 = true, arg1 = id, arg2 = false, arg3 = false) { selfshadow_override = false; with (obj_sunshadows) array_push(selfshadow_instances, arg1); if (arg2) { with (obj_sunshadows) array_push(dropshadow_instances, arg1); } if (arg3) { with (obj_sunshadows) array_push(highlight_instances, arg1); } if (arg0) { draw_func = method(id, function() { draw_self();
scr_selfshadow();
}); } }
();
70
        });
71
    }
72
}