Deltarune (Chapter 1) script viewer

← back to main script listing

gml_Object_obj_heart_Step_0

(view raw script w/o annotations or w/e)
1
wallcheck = 0;
2
press_l = 0;
3
press_r = 0;
4
press_d = 0;
5
press_u = 0;
6
bkx = 0;
7
bky = 0;
8
bkxy = 0;
9
jelly = 2;
10
if (left_h())
11
    press_l = 1;
12
if (right_h())
13
    press_r = 1;
14
if (up_h())
15
    press_u = 1;
16
if (down_h())
17
    press_d = 1;
18
px = 0;
19
py = 0;
20
if (press_r == 1)
21
    px = wspeed;
22
if (press_l == 1)
23
    px = -wspeed;
24
if (press_d == 1)
25
    py = wspeed;
26
if (press_u == 1)
27
    py = -wspeed;
28
if (button2_h())
29
{
30
    if (disableslow == 0)
31
    {
32
        px = ceil(px * 0.5);
33
        py = ceil(py * 0.5);
34
    }
35
}
36
else
37
{
38
    disableslow = 0;
39
}
40
xmeet = 0;
41
ymeet = 0;
42
xymeet = 0;
43
if (place_meeting(x + px, y + py, obj_battlesolid))
44
    xymeet = 1;
45
if (place_meeting(x + px, y, obj_battlesolid))
46
{
47
    if (place_meeting(x + px, y, obj_battlesolid))
48
    {
49
        for (g = wspeed; g > 0; g -= 1)
50
        {
51
            mvd = 0;
52
            if (press_d == 0 && !place_meeting(x + px, y - g, obj_battlesolid))
53
            {
54
                y -= g;
55
                py = 0;
56
                break;
57
                mvd = 1;
58
            }
59
            if (press_u == 0 && mvd == 0 && !place_meeting(x + px, y + g, obj_battlesolid))
60
            {
61
                y += g;
62
                py = 0;
63
                break;
64
            }
65
        }
66
    }
67
    xmeet = 1;
68
    bkx = 0;
69
    if (px > 0)
70
    {
71
        for (i = px; i >= 0; i -= 1)
72
        {
73
            if (!place_meeting(x + i, y, obj_battlesolid))
74
            {
75
                px = i;
76
                bkx = 1;
77
                break;
78
            }
79
        }
80
    }
81
    if (px < 0)
82
    {
83
        for (i = px; i <= 0; i += 1)
84
        {
85
            if (!place_meeting(x + i, y, obj_battlesolid))
86
            {
87
                px = i;
88
                bkx = 1;
89
                break;
90
            }
91
        }
92
    }
93
    if (bkx == 0)
94
        px = 0;
95
}
96
if (place_meeting(x, y + py, obj_battlesolid))
97
{
98
    ymeet = 1;
99
    bky = 0;
100
    if (place_meeting(x, y + py, obj_battlesolid))
101
    {
102
        for (g = wspeed; g > 0; g -= 1)
103
        {
104
            mvd = 0;
105
            if (press_r == 0 && !place_meeting(x - g, y + py, obj_battlesolid))
106
            {
107
                x -= g;
108
                px = 0;
109
                break;
110
                mvd = 1;
111
            }
112
            if (mvd == 0 && press_l == 0 && !place_meeting(x + g, y + py, obj_battlesolid))
113
            {
114
                x += g;
115
                px = 0;
116
                break;
117
            }
118
        }
119
    }
120
    if (py > 0)
121
    {
122
        for (i = py; i >= 0; i -= 1)
123
        {
124
            if (!place_meeting(x, y + i, obj_battlesolid))
125
            {
126
                py = i;
127
                bky = 1;
128
                break;
129
            }
130
        }
131
    }
132
    if (py < 0)
133
    {
134
        for (i = py; i <= 0; i += 1)
135
        {
136
            if (!place_meeting(x, y + i, obj_battlesolid))
137
            {
138
                py = i;
139
                bky = 1;
140
                break;
141
            }
142
        }
143
    }
144
    if (bky == 0)
145
        py = 0;
146
}
147
if (place_meeting(x + px, y + py, obj_battlesolid))
148
{
149
    xymeet = 1;
150
    bkxy = 0;
151
    i = px;
152
    j = py;
153
    while (j != 0 || i != 0)
154
    {
155
        if (!place_meeting(x + i, y + j, obj_battlesolid))
156
        {
157
            px = i;
158
            py = j;
159
            bkxy = 1;
160
            break;
161
        }
162
        if (abs(j) >= 1)
163
        {
164
            if (j > 0)
165
                j -= 1;
166
            if (j < 0)
167
                j += 1;
168
        }
169
        else
170
        {
171
            j = 0;
172
        }
173
        if (abs(i) >= 1)
174
        {
175
            if (i > 0)
176
                i -= 1;
177
            if (i < 0)
178
                i += 1;
179
        }
180
        else
181
        {
182
            i = 0;
183
        }
184
    }
185
    if (bkxy == 0)
186
    {
187
        px = 0;
188
        py = 0;
189
    }
190
}
191
if ((x + px) >= ((__view_get(e__VW.XView, 0) + 640) - sprite_width))
192
    px = (__view_get(e__VW.XView, 0) + 640) - sprite_width - x;
193
if ((x + px) <= 0)
194
    px = -x;
195
if ((y + py) <= 0)
196
    py = -y;
197
if ((y + py) >= (((__view_get(e__VW.YView, 0) + 320) - sprite_height) + boundaryup))
198
    py = ((__view_get(e__VW.YView, 0) + 320) - sprite_height - y) + boundaryup;
199
x += px;
200
y += py;
201
if (dmgnoise == 1)
202
{
203
    dmgnoise = 0;
204
    snd_stop(snd_hurt1);
205
    snd_play(snd_hurt1);
206
}
207
global.inv -= 1;
208
if (global.inv > 0)
209
{
210
    image_speed = 0.25;
211
}
212
else
213
{
214
    image_speed = 0;
215
    image_index = 0;
216
}
217
global.heartx = (x + 2) - __view_get(e__VW.XView, 0);
218
global.hearty = (y + 2) - __view_get(e__VW.YView, 0);
219
220
enum e__VW
221
{
222
    XView,
223
    YView,
224
    WView,
225
    HView,
226
    Angle,
227
    HBorder,
228
    VBorder,
229
    HSpeed,
230
    VSpeed,
231
    Object,
232
    Visible,
233
    XPort,
234
    YPort,
235
    WPort,
236
    HPort,
237
    Camera,
238
    SurfaceID
239
}