Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_castlereflect_Create_0

(view raw script w/o annotations or w/e)
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_fixed
scr_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_init
scr_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;