Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_climb_susie_Draw_0

(view raw script w/o annotations or w/e)
1
if (onrotatingtower)
2
{
3
    var tower = 1010;
4
    var adjustment = -304;
5
    if (tower.appearance == 1)
6
        adjustment = 356;
7
    var __tile_angle = lerp(360, 0, (x + adjustment) / tower.tower_circumference);
8
    var tile_angle1 = __tile_angle + tower.tower_angle;
9
    while (tile_angle1 < 0)
10
        tile_angle1 += 360;
11
    while (tile_angle1 > 360)
12
        tile_angle1 -= 360;
13
    if (tile_angle1 > 350 || tile_angle1 <= 190)
14
        tile_vis = true;
15
    else
16
        tile_vis = false;
17
    var __tile_x = lengthdir_x(tower.tower_radius, tile_angle1);
18
    var tile_angle2 = tile_angle1 + tower.tile_angle_difference;
19
    while (tile_angle2 < 0)
20
        tile_angle2 += 360;
21
    while (tile_angle2 > 360)
22
        tile_angle2 -= 360;
23
    var __tile_xscale = lengthdir_x(tower.tower_radius, tile_angle2) - __tile_x;
24
    var __tile_yscale = tower.tile_width_fine;
25
    var _sprite = spr_susie_climb_0_degrees;
26
    if (abs(__tile_xscale) < 30)
27
        _sprite = spr_susie_climb_45_degrees;
28
    if (abs(__tile_xscale) < 15)
29
        _sprite = spr_susie_climb_90_degrees;
30
    var flip = 1;
31
    if (_sprite != spr_susie_climb_0_degrees && __tile_x < 0)
32
    {
33
        flip = -1;
34
        __tile_x = lengthdir_x(tower.tower_radius, tile_angle1 - tower.tile_angle_difference);
35
    }
36
    __tile_xscale /= (tower.tile_width_fine / 2);
37
    __tile_yscale /= (tower.tile_width_fine / 2);
38
    tower_x = tower.tower_x + __tile_x;
39
    if (con == 3 || con == 4 || con == 5)
40
        _sprite = sprite_index;
41
    var __tile_color = merge_color(c_white, c_gray, abs(__tile_x + (__tile_xscale / 2)) / 90);
42
    if (tile_vis == 1)
43
        draw_sprite_ext(_sprite, image_index, tower.tower_x + __tile_x, y - 10, 2 * flip, __tile_yscale, 0, __tile_color, image_alpha);
44
}
45
else
46
{
47
    draw_self();
48
}