Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_traintrack_moving_bend_Step_0

(view raw script w/o annotations or w/e)
1
if (con == 0)
2
{
3
    if (do_switch)
4
    {
5
        for (var i = 0; i < array_length(track); i++)
6
            safe_delete(track[i]);
7
        snd_play_pitch(snd_wing, 1.8);
8
        if (track_angle_target == image_angle)
9
            track_angle_target = image_angle + 90;
10
        else
11
            track_angle_target = image_angle;
12
        timer = 0;
13
        con = 1;
14
    }
15
}
16
if (con == 1)
17
{
18
    timer++;
19
    track_angle = lerp(track_angle, track_angle_target, timer / transitiontime);
20
    if (timer == transitiontime)
21
    {
22
        con = 2;
23
        timer = 0;
24
        snd_play_pitch(snd_wing, 1.2);
25
    }
26
}
27
if (con == 2)
28
{
29
    track_angle %= 360;
30
    track_angle_target = track_angle;
31
    switch (track_angle)
32
    {
33
        case 0:
34
            track[1] = instance_create_depth(center_x - 5, center_y - 5, depth - 1, obj_traintrack_corner_bottomleft);
35
            break;
36
        case 90:
37
            track[1] = instance_create_depth(center_x - 5, center_y - 5, depth - 1, obj_traintrack_corner_bottomright);
38
            break;
39
        case 180:
40
            track[1] = instance_create_depth(center_x - 5, center_y - 5, depth - 1, obj_traintrack_corner_topleft);
41
            break;
42
        case 270:
43
            track[1] = instance_create_depth(center_x - 5, center_y - 5, depth - 1, obj_traintrack_corner_topright);
44
            break;
45
    }
46
    if (track_angle <= 90)
47
        track[0] = instance_create_depth(center_x - 5, center_y - 15, depth - 1, obj_traintrack_straight_vertical);
48
    else
49
        track[0] = instance_create_depth(center_x - 5, center_y + 5, depth - 1, obj_traintrack_straight_vertical);
50
    if (track_angle == 90 || track_angle == 180)
51
        track[2] = instance_create_depth(center_x - 15, center_y - 5, depth - 1, obj_traintrack_straight_horizontal);
52
    else
53
        track[2] = instance_create_depth(center_x + 5, center_y - 5, depth - 1, obj_traintrack_straight_horizontal);
54
    for (var i = 0; i < array_length(track); i++)
55
        track[i].visible = false;
56
    con = 0;
57
}