|
1
|
depth = 999990;
|
|
2
|
event_inherited();
|
|
3
|
performs_culling_checks = true;
|
|
4
|
if (!instance_exists(obj_castlereflect_manager))
|
|
5
|
instance_create(0, 0, obj_castlereflect_manager);
|
|
6
|
floortex = -4;
|
|
7
|
u_uvs = shader_get_uniform(shd_castlereflect_layerblend, "u_object_surface_uvs");
|
|
8
|
u_uvs2 = shader_get_uniform(shd_castlereflect_layerblend, "u_tile_surface_uvs");
|
|
9
|
u_uvs3 = shader_get_uniform(shd_castlereflect_layerblend, "u_mask_surface_uvs");
|
|
10
|
u_bounds = shader_get_uniform(shd_castlereflect_layerblend, "u_bounds");
|
|
11
|
cachelist = ds_list_create();
|
|
12
|
|
|
13
|
generate_tiles = function()
|
|
14
|
{
|
|
15
|
if (tilesurf == undefined || !surface_exists(tilesurf))
|
|
16
|
tilesurf = surface_create(sprite_width, sprite_height);
|
|
17
|
else
|
|
18
|
exit;
|
|
19
|
var falloff = obj_castlereflect_manager.shadow_falloff * 0.5;
|
|
20
|
surface_set_target(tilesurf);
|
|
21
|
draw_clear_alpha(c_black, 0);
|
|
22
|
draw_set_color(c_white);
|
|
23
|
gpu_set_blendmode_ext_sepalpha(bm_src_alpha, bm_inv_src_alpha, bm_one, bm_one);
|
|
24
|
for (var i = 0; i < array_length(reflect_tiles); i++)
|
|
25
|
{
|
|
26
|
var _lay = layer_get_id(reflect_tiles[i]);
|
|
27
|
if (layer_exists(_lay))
|
|
28
|
{
|
|
29
|
var map_id = scr_layer_tilemap_get_id_fixedscr_layer_tilemap_get_id_fixed
function scr_layer_tilemap_get_id_fixed(arg0)
{
var els = layer_get_all_elements(arg0);
var n = array_length_1d(els);
for (var i = 0; i < n; i++)
{
var el = els[i];
if (layer_get_element_type(el) == 5)
return el;
}
return -1;
} (_lay);
|
|
30
|
if (map_id != -1)
|
|
31
|
{
|
|
32
|
var _tileset = tilemap_get_tileset(map_id);
|
|
33
|
var xx = floor(x / 40);
|
|
34
|
while (xx < floor((x + sprite_width) / 40))
|
|
35
|
{
|
|
36
|
var yy = floor((y - falloff) / 40);
|
|
37
|
while (yy < floor(y))
|
|
38
|
{
|
|
39
|
var _tiledata = tilemap_get(map_id, xx, yy);
|
|
40
|
if (_tiledata >= 0)
|
|
41
|
{
|
|
42
|
var b = !tile_get_flip(_tiledata);
|
|
43
|
_tiledata = tile_set_flip(_tiledata, b);
|
|
44
|
draw_tile(_tileset, _tiledata, 0, (xx * 40) - x, y - (yy * 40) - 40);
|
|
45
|
}
|
|
46
|
yy++;
|
|
47
|
}
|
|
48
|
xx++;
|
|
49
|
}
|
|
50
|
}
|
|
51
|
else
|
|
52
|
{
|
|
53
|
var a = layer_get_all_elements(_lay);
|
|
54
|
for (var j = 0; j < array_length(a); j++)
|
|
55
|
{
|
|
56
|
if (layer_get_element_type(a[j]) == 4)
|
|
57
|
{
|
|
58
|
var _x = layer_sprite_get_x(a[j]) - x;
|
|
59
|
var _y = -(layer_sprite_get_y(a[j]) - y);
|
|
60
|
var _spr = layer_sprite_get_sprite(a[j]);
|
|
61
|
var _img = layer_sprite_get_index(a[j]);
|
|
62
|
var _xscale = layer_sprite_get_xscale(a[j]);
|
|
63
|
var _yscale = layer_sprite_get_yscale(a[j]);
|
|
64
|
var _angle = layer_sprite_get_angle(a[j]);
|
|
65
|
var _blend = layer_sprite_get_blend(a[j]);
|
|
66
|
var _alpha = layer_sprite_get_alpha(a[j]);
|
|
67
|
draw_sprite_ext(_spr, _img, _x, _y, _xscale, -_yscale, _angle, _blend, _alpha);
|
|
68
|
}
|
|
69
|
}
|
|
70
|
}
|
|
71
|
}
|
|
72
|
}
|
|
73
|
draw_set_blend_mode(bm_subtract);
|
|
74
|
draw_sprite_ext(spr_gradient20, 0, 0, falloff, 10000, falloff / 15, 0, c_black, 1);
|
|
75
|
draw_sprite_ext(spr_pxwhite, 0, 0, falloff, 10000, 10000, 0, c_black, 1);
|
|
76
|
draw_set_blend_mode(bm_normal);
|
|
77
|
surface_reset_target();
|
|
78
|
};
|
|
79
|
|
|
80
|
tilesurf = -4;
|
|
81
|
surf = -4;
|
|
82
|
scr_platswap_initscr_platswap_init
function scr_platswap_init(arg0 = undefined, arg1 = true)
{
if (!instance_exists(obj_platswap))
return -4;
if (!instance_exists(obj_platswap_helper))
instance_create(0, 0, obj_platswap_helper);
var _helper = 658;
if (arg0 == undefined)
{
ignore_yorigin = 0;
if (!variable_instance_exists(id, "force_yplat"))
force_yplat = false;
with (_helper)
init_platswap(other.id, arg1);
return _helper;
}
if (instance_exists(arg0))
{
with (arg0)
{
if (!variable_instance_exists(id, "force_yplat"))
force_yplat = false;
ignore_yorigin = 0;
with (_helper)
init_platswap(arg0.id, arg1);
return _helper;
}
}
}
function scr_platswap_init_alt(arg0 = id, arg1 = true)
{
if (!instance_exists(obj_platswap))
return -4;
if (!instance_exists(obj_platswap_helper))
instance_create(0, 0, obj_platswap_helper);
if (instance_exists(arg0))
{
with (arg0)
{
ignore_yorigin = 1;
if (!variable_instance_exists(id, "force_yplat"))
force_yplat = false;
with (_helper)
init_platswap(other.id, arg1);
return _helper;
}
}
}
function scr_plat_make_pauseable(arg0 = id)
{
if (!instance_exists(obj_platswap))
return -4;
if (!instance_exists(obj_plat_pausing_helper))
instance_create(0, 0, obj_plat_pausing_helper);
with (obj_plat_pausing_helper)
add_object(arg0);
} (self, false);
|
|
83
|
init = 0;
|