Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_ch3_funny_stanchion_controller_Create_0

(view raw script w/o annotations or w/e)
1
visible = false;
2
_colliders = [];
3
_stanchions = [];
4
5
init = function()
6
{
7
    switch (facing)
8
    {
9
        case "down":
10
            var _max_amount = round(image_xscale / 2);
11
            var _collider = instance_create(x + 4, y - 10, obj_solidblocksized);
12
            _collider.image_xscale = (image_xscale / 2) - 0.25;
13
            _collider.image_yscale = 0.15;
14
            _colliders[array_length(_colliders)] = _collider;
15
            for (var i = 0; i < _max_amount; i++)
16
            {
17
                var _stanchion = instance_create(x + (i * 40), y - 4, obj_dw_ch3_funny_stanchion);
18
                with (_stanchion)
19
                    
scr_depth_alt
scr_depth_alt

function
scr_depth_alt(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10) + (arg1 * 10)); }
();
20
                _stanchion.image_xscale = 2;
21
                _stanchion.image_yscale = 2;
22
                _stanchions[array_length(_stanchions)] = _stanchion;
23
                var _pos = "center";
24
                if (i == 0)
25
                    _pos = "left";
26
                else if (i == (_max_amount - 1))
27
                    _pos = "right";
28
                with (_stanchion)
29
                    set_pos(_pos);
30
            }
31
            break;
32
        case "up":
33
            var _max_amount = round(image_xscale / 2);
34
            var _collider = instance_create(x + 4, (y - 20) + 4, obj_solidblocksized);
35
            _collider.image_xscale = (image_xscale / 2) - 0.25;
36
            _collider.image_yscale = 0.15;
37
            _colliders[array_length(_colliders)] = _collider;
38
            for (var i = 0; i < _max_amount; i++)
39
            {
40
                var _stanchion = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x + (i * 40), y - 10, spr_dw_teevie_funny_stanchion_back);
41
                with (_stanchion)
42
                    
scr_depth_alt
scr_depth_alt

function
scr_depth_alt(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10) + (arg1 * 10)); }
();
43
                _stanchion.image_xscale = 2;
44
                _stanchion.image_yscale = 2;
45
                _stanchions[array_length(_stanchions)] = _stanchion;
46
                if (i == 0)
47
                    _stanchion.sprite_index = spr_dw_teevie_funny_stanchion_back_left;
48
                else if (i == (_max_amount - 1))
49
                    _stanchion.sprite_index = spr_dw_teevie_funny_stanchion_back_right;
50
            }
51
            break;
52
        case "right":
53
            var _max_amount = image_yscale / 2;
54
            var _collider = instance_create(x + 14, y - (40 * _max_amount) - 40, obj_solidblocksized);
55
            _collider.image_xscale = 0.25;
56
            _collider.image_yscale = (image_yscale / 2) + 1;
57
            _colliders[array_length(_colliders)] = _collider;
58
            for (var i = 0; i < _max_amount; i++)
59
            {
60
                var _stanchion = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x, y - (i * sprite_get_height(spr_dw_teevie_funny_stanchion_right_dir) * 2) - 4, spr_dw_teevie_funny_stanchion_right_dir);
61
                with (_stanchion)
62
                    
scr_depth_alt
scr_depth_alt

function
scr_depth_alt(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10) + (arg1 * 10)); }
();
63
                _stanchion.image_xscale = 2;
64
                _stanchion.image_yscale = 2;
65
                _stanchions[array_length(_stanchions)] = _stanchion;
66
            }
67
            break;
68
        case "left":
69
            var _max_amount = image_yscale / 2;
70
            var _collider = instance_create(x + 14, y - (40 * _max_amount) - 20, obj_solidblocksized);
71
            _collider.image_xscale = 0.25;
72
            _collider.image_yscale = (image_yscale / 2) + 1;
73
            _colliders[array_length(_colliders)] = _collider;
74
            for (var i = 0; i < _max_amount; i++)
75
            {
76
                var _stanchion = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x, y - (i * sprite_get_height(spr_dw_teevie_funny_stanchion_left_dir) * 2), spr_dw_teevie_funny_stanchion_left_dir);
77
                with (_stanchion)
78
                    
scr_depth_alt
scr_depth_alt

function
scr_depth_alt(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10) + (arg1 * 10)); }
();
79
                _stanchion.image_xscale = 2;
80
                _stanchion.image_yscale = 2;
81
                _stanchions[array_length(_stanchions)] = _stanchion;
82
            }
83
            break;
84
    }
85
};
86
87
init();
88
89
clean_up = function()
90
{
91
    var i = array_length(_stanchions) - 1;
92
    while (i >= 0)
93
    {
94
        with (_stanchions[i])
95
            instance_destroy();
96
        i--;
97
    }
98
    i = array_length(_colliders) - 1;
99
    while (i >= 0)
100
    {
101
        with (_colliders[i])
102
            instance_destroy();
103
        i--;
104
    }
105
};
106
107
if (global.flag[1661] == 0)
108
    clean_up();