Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_board_grabobject_Step_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    susie = 0;
4
    with (obj_mainchara_board)
5
    {
6
        if (name == "susie")
7
            other.susie = id;
8
    }
9
    if (i_ex(grabbedid))
10
    {
11
        if (grabbedid.object_index == obj_board_bridge)
12
        {
13
            type = 1;
14
            xoff = grabbedid.xoff;
15
        }
16
        if (grabbedid.object_index == obj_board_grabblenpc)
17
        {
18
            type = 10;
19
            if (variable_instance_exists(grabbedid, "grabindex"))
20
                grabbedid.sprite_index = grabbedid.grabindex;
21
            with (grabbedid)
22
                safe_delete(mysolid);
23
        }
24
        if (grabbedid.object_index == obj_b3bs_chasekey)
25
        {
26
            grabbedid.sprite_index = spr_b3bs_chasekey_grabbed;
27
            grabbedid.grabbed = true;
28
            throwbuff = 10;
29
        }
30
        if ((grabbedid.object_index == obj_pushableblock_board && room != room_dw_b3bs_mysterypuzzle) || grabbedid.object_index == obj_dw_puzzlecloset_1_bush || grabbedid.object_index == obj_b3bs_chasekey)
31
            throwdist = 1;
32
    }
33
    if (grabbedid.object_index == obj_mainchara_board)
34
    {
35
        global.flag[1257 times_carried_ralsei]++;
36
        
scr_pathfind_end
scr_pathfind_end

function
scr_pathfind_end(arg0)
{ with (obj_mainchara_board) { if (name == arg0) { path_end(); path_target_x = -1; path_target_y = -1; is_moving_timer = 0; is_moving = false; } } }
(grabbedid.name);
37
    }
38
    if (grabbedid.object_index == obj_board_bridge)
39
    {
40
        if (sprite_index == spr_board_ralsei_surfboard)
41
        {
42
            global.flag[1257 times_carried_ralsei]++;
43
            debug_print("ralsei lift: " + string(global.flag[1257 times_carried_ralsei]));
44
        }
45
    }
46
    blockerlist[0] = 0;
47
    for (var i = 0; i < array_length(susie.blockerlist); i++)
48
    {
49
        blockerlist[i] = susie.blockerlist[i];
50
        if (ignoreplayer == 1)
51
        {
52
            if (blockerlist[i] == 544)
53
                blockerlist[i] = 322;
54
        }
55
    }
56
    if (instance_exists(grabbedid))
57
    {
58
        marker = 
scr_marker
scr_marker

function
scr_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; } return thismarker; }
(x, y, grabbedid.sprite_index);
59
        marker.image_xscale = grabbedid.image_xscale;
60
        marker.image_yscale = grabbedid.image_yscale;
61
        marker.image_speed = grabbedid.image_speed;
62
        marker.image_index = grabbedid.image_index;
63
        marker.visible = false;
64
        if (variable_instance_exists(grabbedid, "throwdist"))
65
            throwdist = grabbedid.throwdist;
66
        if (variable_instance_exists(grabbedid, "snap"))
67
            snap = grabbedid.snap;
68
    }
69
    image_alpha = 0;
70
    sprite_index = spr_whitepx_10;
71
    image_xscale = 3.2;
72
    image_yscale = 3.2;
73
    if (room == room_dw_puzzlecloset_1 || room == room_dw_puzzlecloset_2)
74
    {
75
    }
76
    init = 1;
77
}
78
lifetimer++;
79
if (throwbuff > 0)
80
    throwbuff--;
81
if (con == 0 && instance_exists(grabdaddy))
82
{
83
    if (type == 0)
84
    {
85
        _xx = 0;
86
        _yy = 0;
87
        switch (grabdaddy.facing)
88
        {
89
            case 0:
90
                _yy = 32;
91
                break;
92
            case 1:
93
                _xx = 32;
94
                break;
95
            case 2:
96
                _yy = -32;
97
                break;
98
            case 3:
99
                _xx = -32;
100
                break;
101
        }
102
        blocked = 0;
103
        tx = round(grabdaddy.x / 32) * 32;
104
        ty = round(grabdaddy.bbox_top / 32) * 32;
105
        if (ty > grabdaddy.bbox_bottom)
106
            ty -= 32;
107
        if (throwdist == 1)
108
        {
109
            switch (grabdaddy.facing)
110
            {
111
                case 0:
112
                    if (ty < grabdaddy.y)
113
                        ty += 32;
114
                    break;
115
                case 1:
116
                    if (tx < grabdaddy.x)
117
                        tx += 32;
118
                    break;
119
                case 2:
120
                    if (ty > grabdaddy.y)
121
                        ty -= 32;
122
                    break;
123
                case 3:
124
                    if (tx > grabdaddy.x)
125
                        tx -= 32;
126
                    break;
127
            }
128
        }
129
        var spaceFree = 1;
130
        if (snap)
131
        {
132
            for (var i = 1; i < (throwdist + 1); i++)
133
            {
134
                for (var j = 0; j < array_length(blockerlist); j++)
135
                {
136
                    var blok = instance_place(tx + (_xx * i), ty + (_yy * i), blockerlist[j]);
137
                    if (blok != -4 && blok.object_index != obj_mainchara_board)
138
                    {
139
                        if (blok != grabdaddy)
140
                            spaceFree = 0;
141
                    }
142
                }
143
                if (spaceFree != 0)
144
                    blocked = i;
145
            }
146
            aimx = tx + (_xx * blocked);
147
            aimy = ty + (_yy * blocked);
148
            aimoverwrite = false;
149
            if (room == room_dw_b3bs_mysterypuzzle)
150
            {
151
                if (aimx == 384)
152
                    aimx -= 32;
153
            }
154
            if (room == room_dw_b3bs_extrapuzzle)
155
            {
156
                if (aimx == 256)
157
                    aimx += 32;
158
            }
159
            if (room == room_dw_b3bs_extrapuzzle)
160
            {
161
                if (aimx == 192)
162
                    aimx += 32;
163
            }
164
            if (room == room_board_3b)
165
            {
166
                if (obj_b3bfinale.active == true)
167
                {
168
                    var inst = instance_place(aimx, aimy, obj_board_aimoverwrite);
169
                    if (i_ex(inst))
170
                    {
171
                        aimx = inst.aimx;
172
                        aimy = inst.aimy;
173
                        aimoverwrite = true;
174
                    }
175
                }
176
            }
177
            if (room == room_dw_puzzlecloset_2)
178
            {
179
                if (grabbedid.object_index == obj_b3bs_chasekey)
180
                {
181
                    var inst = instance_place(aimx, aimy, obj_board_aimoverwrite);
182
                    if (i_ex(inst))
183
                    {
184
                        aimx = inst.aimx;
185
                        aimy = inst.aimy;
186
                        aimoverwrite = true;
187
                    }
188
                }
189
            }
190
        }
191
        var inbounds = true;
192
        if (room == room_dw_b3bs_cheaterpippins || room == room_dw_puzzlecloset_1 || room == room_dw_puzzlecloset_2 || room == room_dw_b3bs_rouxls_lanina)
193
            inbounds = false;
194
        if (inbounds)
195
        {
196
            var lclamp = 160;
197
            var rclamp = 448;
198
            var uclamp = 96;
199
            var dclamp = 256;
200
            if (room == room_dw_puzzlecloset_3)
201
            {
202
                lclamp = 2688;
203
                rclamp = lclamp + 384;
204
                uclamp = 608;
205
                dclamp = uclamp + 224;
206
            }
207
            aimx = clamp(aimx, lclamp, rclamp);
208
            aimy = clamp(aimy, uclamp, dclamp);
209
        }
210
        if (throwdist > 1 && instance_exists(grabdaddy))
211
        {
212
            if (grabdaddy.x < (aimx + 32) && grabdaddy.facing == 3)
213
                blocked = 0;
214
            if ((grabdaddy.x + 32) > aimx && grabdaddy.facing == 1)
215
                blocked = 0;
216
            if (grabdaddy.y < (aimy + 32) && grabdaddy.facing == 2)
217
                blocked = 0;
218
            if ((grabdaddy.y + 32) > aimy && grabdaddy.facing == 0)
219
                blocked = 0;
220
        }
221
    }
222
    if (type == 1 && instance_exists(grabdaddy))
223
    {
224
        tx = (round(grabdaddy.x / 32) * 32) - xoff;
225
        ty = round(grabdaddy.bbox_top / 32) * 32;
226
        if (ty > grabdaddy.bbox_bottom)
227
            ty -= 32;
228
        _xx = 0;
229
        _yy = 0;
230
        switch (grabdaddy.facing)
231
        {
232
            case 0:
233
                _yy = 32;
234
                break;
235
            case 1:
236
                _xx = 32;
237
                break;
238
            case 2:
239
                _yy = -32;
240
                break;
241
            case 3:
242
                _xx = -32;
243
                break;
244
        }
245
        checkx = round((tx + _xx) / 32) * 32;
246
        checky = round((ty + _yy) / 32) * 32;
247
        if (room != room_dw_b3bs_rouxls_lanina && room != room_dw_puzzlecloset_3)
248
            checky = clamp(checky, board_tiley(1), board_tiley(6));
249
        blocked = 0;
250
        bridgereticle1 = false;
251
        bridgereticle2 = false;
252
        var _water = instance_place(checkx, checky, obj_board_watertile);
253
        if (instance_exists(_water))
254
        {
255
            if (_water.occupied == false)
256
            {
257
                blocked = 1;
258
                bridgereticle1 = true;
259
                aimx = checkx;
260
                aimy = checky;
261
            }
262
        }
263
        if (instance_exists(grabbedid))
264
        {
265
            if (blocked == 1)
266
            {
267
                if (grabbedid.size > 1)
268
                {
269
                    blocked = 0;
270
                    _water = instance_place(checkx + 32, checky, obj_board_watertile);
271
                    if (instance_exists(_water))
272
                    {
273
                        if (_water.occupied == false)
274
                        {
275
                            blocked = 1;
276
                            bridgereticle2 = true;
277
                            aimx = checkx;
278
                            aimy = checky;
279
                        }
280
                    }
281
                }
282
            }
283
        }
284
    }
285
    if (type == 2 && instance_exists(grabdaddy))
286
    {
287
        tx = round(grabdaddy.x / 32) * 32;
288
        ty = round(grabdaddy.bbox_top / 32) * 32;
289
        if (ty > grabdaddy.bbox_bottom)
290
            ty -= 32;
291
        _xx = 0;
292
        _yy = 0;
293
        switch (grabdaddy.facing)
294
        {
295
            case 0:
296
                _yy = 32;
297
                break;
298
            case 1:
299
                _xx = 32;
300
                break;
301
            case 2:
302
                _yy = -32;
303
                break;
304
            case 3:
305
                _xx = -32;
306
                break;
307
        }
308
        checkx = round((tx + _xx) / 32) * 32;
309
        checky = round((ty + _yy) / 32) * 32;
310
        checky = clamp(checky, board_tiley(1), board_tiley(6));
311
        blocked = 0;
312
        if (!instance_place(checkx, checky, obj_board_solid))
313
        {
314
            blocked = 1;
315
            aimx = checkx;
316
            aimy = checky;
317
        }
318
    }
319
    if (type == 3 && instance_exists(grabdaddy))
320
    {
321
        tx = round(grabdaddy.x / 32) * 32;
322
        ty = round(grabdaddy.bbox_top / 32) * 32;
323
        if (ty > grabdaddy.bbox_bottom)
324
            ty -= 32;
325
        _xx = 0;
326
        _yy = 0;
327
        switch (grabdaddy.facing)
328
        {
329
            case 0:
330
                _yy = 64;
331
                break;
332
            case 1:
333
                _xx = 64;
334
                break;
335
            case 2:
336
                _yy = -64;
337
                break;
338
            case 3:
339
                _xx = -64;
340
                break;
341
        }
342
        checkx = round((tx + _xx) / 32) * 32;
343
        checky = round((ty + _yy) / 32) * 32;
344
        blocked = 0;
345
        if (!instance_place(checkx, checky, obj_board_solid))
346
        {
347
            blocked = 1;
348
            aimx = checkx;
349
            aimy = checky;
350
        }
351
    }
352
    if (type == 10)
353
    {
354
        blocked = 1;
355
        aimx = checkx;
356
        aimy = checky;
357
    }
358
}
359
if (con == 1)
360
{
361
    if (type == 10)
362
    {
363
        var tossdir = 0;
364
        with (grabdaddy)
365
        {
366
            grabbed = 0;
367
            grab = 0;
368
            canfreemove = 1;
369
            if (facing == 2)
370
                facing = 0;
371
            tossdir = facing;
372
        }
373
        with (grabbedid)
374
        {
375
            dir = tossdir;
376
            setxy(other.x, other.y - 32);
377
            visible = true;
378
            con = 1;
379
        }
380
        instance_destroy();
381
    }
382
    if (aimoverwrite == true)
383
    {
384
        if (room == room_board_3b)
385
        {
386
            if (obj_b3bfinale.active)
387
            {
388
                global.interact = 1;
389
                obj_b3bfinale.clamper = false;
390
            }
391
        }
392
    }
393
    if (!instathrow && instance_exists(grabdaddy))
394
    {
395
        timer = 0;
396
        if (grabdaddy.graballpots_con == 3)
397
        {
398
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(marker, "x", x, grabdaddy.xx, throwtime);
399
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(marker, "y", marker.y, grabdaddy.yy, throwtime);
400
        }
401
        else
402
        {
403
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(marker, "x", marker.x, aimx, throwtime);
404
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(marker, "y", marker.y, aimy, throwtime);
405
        }
406
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("fakey", 0, -32, round(throwtime / 2), 2, "out");
407
        setxy(grabdaddy.x + (_xx / 4), grabdaddy.y + (_yy / 4));
408
        if (grabdaddy.graballpots_con == 3)
409
        {
410
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, grabdaddy.xx, throwtime);
411
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, grabdaddy.yy, throwtime);
412
        }
413
        else
414
        {
415
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, aimx, throwtime);
416
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, aimy, throwtime);
417
        }
418
        if (room == room_board_3b)
419
        {
420
            if (aimoverwrite)
421
                createshadow = false;
422
        }
423
        if (createshadow)
424
        {
425
            shadowmarker = instance_create(x, y, obj_board_marker);
426
            shadowmarker.sprite_index = spr_board_shadow;
427
            shadowmarker.image_index = 1;
428
            shadowmarker.image_speed = 0;
429
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(shadowmarker);
430
            shadowmarker.depth = 999990;
431
        }
432
        con = 2;
433
    }
434
    else
435
    {
436
        x = aimx;
437
        y = aimy;
438
        con = 5;
439
    }
440
}
441
if (con == 2)
442
{
443
    timer++;
444
    if (timer == round(throwtime / 2))
445
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("fakey", -32, 0, round(throwtime / 2), 2, "in");
446
    if ((marker.x == aimx && marker.y == aimy && grabdaddy.graballpots_con != 3) || (marker.x == grabdaddy.xx && marker.y == grabdaddy.yy && grabdaddy.graballpots_con == 3))
447
    {
448
        with (shadowmarker)
449
            instance_destroy();
450
        if (room == room_board_3b)
451
        {
452
            if (aimoverwrite)
453
                playsound = false;
454
        }
455
        if (playsound)
456
            snd_play(snd_impact_bc);
457
        with (grabbedid)
458
        {
459
            if (instance_exists(other.grabdaddy))
460
            {
461
                if (other.grabdaddy.graballpots_con != 3)
462
                {
463
                    setxy(other.aimx, other.aimy);
464
                }
465
                else
466
                {
467
                    with (obj_board_controller.ralsei_object)
468
                    {
469
                        follow = true;
470
                        facing = 0;
471
                        sprite_index = dsprite;
472
                    }
473
                    setxy(other.grabdaddy.xx, other.grabdaddy.yy);
474
                }
475
            }
476
            visible = true;
477
            frozen = false;
478
            if ((object_index == obj_board_grabbleObject || object_index == obj_board_grabbablegrass || object_index == obj_board_grabbablebomb) && other.type != 3)
479
            {
480
                grabcount++;
481
                if (variable_instance_exists(id, "extflag") && is_string(extflag) && extflag == "shell")
482
                {
483
                    with (instance_create(x, y, obj_board_breakpoof))
484
                    {
485
                        depth = other.depth;
486
                        image_blend = #9296FF;
487
                    }
488
                    x = room_width * 4;
489
                }
490
            }
491
            if (object_index == obj_shadow_mantle_bomb || object_index == obj_board_bomb)
492
                con = 2;
493
            if (object_index == obj_mainchara_board)
494
            {
495
                canfreemove = 1;
496
                sleepytimer = 0;
497
            }
498
            if (room == room_dw_puzzlecloset_1)
499
            {
500
                if (object_index == obj_pushableblock_board)
501
                {
502
                    var grass = instance_place(x, y, obj_board_grabbablegrass);
503
                    if (instance_exists(grass))
504
                    {
505
                        with (grass)
506
                        {
507
                            if (con < 2.1)
508
                                con = 2.1;
509
                        }
510
                    }
511
                }
512
            }
513
        }
514
        with (marker)
515
            instance_destroy();
516
        with (grabdaddy)
517
        {
518
            grabbed = 0;
519
            grab = 0;
520
            canfreemove = 1;
521
        }
522
        instance_destroy();
523
    }
524
}
525
if (con == 5)
526
{
527
    snd_play(snd_impact_bc);
528
    with (grabbedid)
529
    {
530
        if (instance_exists(other.grabdaddy))
531
        {
532
            if (other.grabdaddy.graballpots_con != 3)
533
            {
534
                setxy(other.aimx, other.aimy);
535
            }
536
            else
537
            {
538
                with (obj_board_controller.ralsei_object)
539
                {
540
                    follow = true;
541
                    facing = 0;
542
                    sprite_index = dsprite;
543
                }
544
                setxy(other.grabdaddy.xx, other.grabdaddy.yy);
545
            }
546
        }
547
        visible = true;
548
        frozen = false;
549
    }
550
    with (marker)
551
        instance_destroy();
552
    with (obj_mainchara_board)
553
    {
554
        grabbed = 0;
555
        grab = 0;
556
        canfreemove = 1;
557
    }
558
    con = 6;
559
    instance_destroy();
560
}
561
if (con == 0)
562
    depth = grabdaddy.depth - 100;
563
else
564
    
scr_depth_board
scr_depth_board

function
scr_depth_board()
{ depth = 1000000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10)); } function scr_board_depth() {
scr_depth_board();
}
();
565
if (obj_board_camera.con != 0)
566
{
567
    if (instance_exists(grabbedid))
568
    {
569
        if (grabbedid.object_index != obj_mainchara_board)
570
        {
571
            safe_delete(grabbedid);
572
            safe_delete(shadowmarker);
573
            if (instance_exists(grabdaddy))
574
            {
575
                grabdaddy.grabbed = 0;
576
                grabdaddy.grab = 0;
577
            }
578
            instance_destroy();
579
        }
580
    }
581
}
582
if (instance_exists(shadowmarker))
583
{
584
    if (fakey > -10)
585
        shadowmarker.visible = false;
586
    else
587
        shadowmarker.visible = true;
588
}