Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_set_floortex_obj_yplat

(view raw script w/o annotations or w/e)
1
function set_floortex_obj_yplat()
2
{
3
    if (!variable_instance_exists(id, "force_yplat") || !force_yplat)
4
    {
5
        if (variable_instance_exists(id, "walltex"))
6
        {
7
            if (instance_exists(walltex))
8
            {
9
                if (walltype == 1)
10
                    y_plat = floortex.bbox_bottom_plat + walldist;
11
                if (walltype == 2)
12
                    y_plat = floortex.bbox_top_plat + walldist;
13
                if (variable_instance_exists(id, "y_plat_offset"))
14
                    y_plat += y_plat_offset;
15
                exit;
16
            }
17
        }
18
        if (instance_exists(floortex))
19
        {
20
            var _spr = sprite_index;
21
            var _h = sprite_get_height(_spr);
22
            var _yorigin = sprite_get_yoffset(_spr);
23
            var _ALIGNMENT = 0;
24
            var _y_ow = y_ow;
25
            if (ignore_yorigin)
26
            {
27
                _ALIGNMENT = 1;
28
            }
29
            else if (_yorigin == round(_h / 2))
30
            {
31
                _ALIGNMENT = 0;
32
                _y_ow += (sprite_height / 2);
33
            }
34
            else if (_yorigin > round(_h / 2))
35
            {
36
                _ALIGNMENT = 1;
37
            }
38
            else
39
            {
40
                _ALIGNMENT = -1;
41
                _y_ow += sprite_height;
42
            }
43
            var _scale = 0.1;
44
            var _ydist = _y_ow - floortex.y_ow;
45
            if (!variable_instance_exists(id, "force_yplat") || !force_yplat)
46
            {
47
                y_plat = floortex.y_plat + (_ydist * _scale);
48
                switch (_ALIGNMENT)
49
                {
50
                    case -1:
51
                        y_plat -= sprite_height;
52
                        break;
53
                    case 0:
54
                        y_plat -= (sprite_height / 2);
55
                        break;
56
                    case 1:
57
                        break;
58
                }
59
            }
60
        }
61
    }
62
    if (variable_instance_exists(id, "y_plat_offset"))
63
        y_plat += y_plat_offset;
64
}