Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_phone_controls_Step_1

(view raw script w/o annotations or w/e)
1
touch_current = 0;
2
phn_down = false;
3
phn_left = false;
4
phn_up = false;
5
phn_right = false;
6
phn_downp = false;
7
phn_leftp = false;
8
phn_upp = false;
9
phn_rightp = false;
10
for (var i = 0; i < 4; i++)
11
{
12
    var mouse_xx = device_mouse_x_to_gui(i);
13
    var mouse_yy = device_mouse_y_to_gui(i);
14
    a_pressed = point_in_circle(mouse_xx, mouse_yy, mobile_a_xx, mobile_a_yy, button_radius) && device_mouse_check_button(i, mb_any);
15
    if (a_pressed && !noloop_a)
16
    {
17
        noloop_a = i;
18
        keyboard_key_press(vk_enter);
19
    }
20
    if (!a_pressed && noloop_a == i)
21
    {
22
        noloop_a = -1;
23
        keyboard_key_release(vk_enter);
24
    }
25
    if (a_pressed)
26
        break;
27
}
28
for (var i = 0; i < 4; i++)
29
{
30
    var mouse_xx = device_mouse_x_to_gui(i);
31
    var mouse_yy = device_mouse_y_to_gui(i);
32
    b_pressed = point_in_circle(mouse_xx, mouse_yy, mobile_b_xx, mobile_b_yy, button_radius) && device_mouse_check_button(i, mb_any);
33
    if (b_pressed && !noloop_b)
34
    {
35
        noloop_b = i;
36
        keyboard_key_press(vk_shift);
37
    }
38
    if (!b_pressed && noloop_b == i)
39
    {
40
        noloop_b = -1;
41
        keyboard_key_release(vk_shift);
42
    }
43
    if (b_pressed)
44
        break;
45
}
46
for (var i = 0; i < 4; i++)
47
{
48
    var mouse_xx = device_mouse_x_to_gui(i);
49
    var mouse_yy = device_mouse_y_to_gui(i);
50
    y_pressed = point_in_circle(mouse_xx, mouse_yy, mobile_a_xx, mobile_y_yy, button_radius) && device_mouse_check_button(i, mb_any);
51
    if (y_pressed && !noloop_y)
52
    {
53
        noloop_y = i;
54
        keyboard_key_press(vk_control);
55
    }
56
    if (!y_pressed && noloop_y == i)
57
    {
58
        noloop_y = -1;
59
        keyboard_key_release(vk_control);
60
    }
61
    if (y_pressed)
62
        break;
63
}
64
var stick_radius = sprite_get_width(spr_andrd_stick_base) * button_scale;
65
for (var i = 0; i < 4; i++)
66
{
67
    var mouse_xx = device_mouse_x_to_gui(i);
68
    var mouse_yy = device_mouse_y_to_gui(i);
69
    if (mouse_xx <= 0 && device_mouse_check_button(i, mb_any) && stick_movement_active == false)
70
    {
71
        mobile_stick_xx = mouse_xx;
72
        mobile_stick_yy = mouse_yy;
73
        stick_movement_active = true;
74
    }
75
    if (stick_movement_active == true)
76
    {
77
        mobile_stick_dir = point_direction(mobile_stick_xx, mobile_stick_yy, mouse_xx, mouse_yy);
78
        mobile_stick_distance = clamp(point_distance(mobile_stick_xx, mobile_stick_yy, mouse_xx, mouse_yy), 0, sprite_get_width(spr_andrd_stick) * 0.5 * button_scale);
79
        stick_x_dist = lengthdir_x(mobile_stick_distance, mobile_stick_dir);
80
        stick_y_dist = lengthdir_y(mobile_stick_distance, mobile_stick_dir);
81
        if (!device_mouse_check_button(i, mb_any))
82
            stick_movement_active = false;
83
        if (mobile_stick_xx < (-stick_radius * 0.5))
84
            stick_alpha = lerp(stick_alpha, 1, 0.25);
85
        else
86
            stick_alpha = lerp(stick_alpha, 0.15, 0.25);
87
        if (mobile_stick_distance > (global.gamepad_deadzone * stick_radius))
88
        {
89
            var dgn = 20;
90
            if (mobile_stick_dir >= (45 - dgn) && mobile_stick_dir < (135 + dgn))
91
            {
92
                if (stick_noloop_v != 1)
93
                {
94
                    phn_upp = true;
95
                    stick_noloop_v = 1;
96
                }
97
                phn_up = true;
98
            }
99
            if (mobile_stick_dir >= (135 - dgn) && mobile_stick_dir < (225 + dgn))
100
            {
101
                if (stick_noloop_h != 1)
102
                {
103
                    phn_leftp = true;
104
                    stick_noloop_h = 1;
105
                }
106
                phn_left = true;
107
            }
108
            if (mobile_stick_dir >= (225 - dgn) && mobile_stick_dir < (315 + dgn))
109
            {
110
                if (stick_noloop_v != 2)
111
                {
112
                    phn_downp = true;
113
                    stick_noloop_v = 2;
114
                }
115
                phn_down = true;
116
            }
117
            if ((mobile_stick_dir >= (315 - dgn) && mobile_stick_dir <= 360) || mobile_stick_dir < (45 + dgn))
118
            {
119
                if (stick_noloop_h != 2)
120
                {
121
                    phn_rightp = true;
122
                    stick_noloop_h = 2;
123
                }
124
                phn_right = true;
125
            }
126
        }
127
        else
128
        {
129
            stick_noloop_h = 0;
130
            stick_noloop_v = 0;
131
        }
132
        break;
133
    }
134
    else
135
    {
136
        stick_x_dist = 0;
137
        stick_y_dist = 0;
138
        stick_alpha = lerp(stick_alpha, 0.25, 0.25);
139
        stick_noloop_h = 0;
140
        stick_noloop_v = 0;
141
    }
142
}