|
1
|
function scr_selfshadowscr_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_selfshadowscr_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
|
}
|