Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_church_remotepianomove_Step_0

(view raw script w/o annotations or w/e)
1
scr_populatechars
scr_populatechars

function
scr_populatechars()
{ if (!variable_instance_exists(id, "kris")) kris = 0; if (!variable_instance_exists(id, "ralsei")) ralsei = 0; if (!variable_instance_exists(id, "susie")) susie = 0; if (!variable_instance_exists(id, "noelle")) noelle = 0; if (kris == 0) { with (obj_mainchara) other.kris = id; } if (susie == 0) { with (obj_caterpillarchara) { if (name == "susie") other.susie = id; } } if (ralsei == 0) { with (obj_caterpillarchara) { if (name == "ralsei") other.ralsei = id; } } if (noelle == 0) { with (obj_caterpillarchara) { if (name == "noelle") other.noelle = id; } } }
();
2
var mywidth = 80;
3
var myheight = 80;
4
with (mysolid)
5
{
6
    if (global.interact != 0 || d_ex())
7
        myinteract = 0;
8
    if (myinteract)
9
    {
10
        if (other.con == 0)
11
        {
12
            other.con = 1;
13
            other.timer = 0;
14
        }
15
        myinteract = 0;
16
    }
17
}
18
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
(id, -22);
19
if (con >= 1 && con < 2)
20
{
21
    if (con == 1)
22
    {
23
        con = 1.1;
24
        var pos = [x + 20, y - 4];
25
        var walktime = max(round(point_distance(pos[0], pos[1], obj_mainchara.x, obj_mainchara.y) / 4), 4);
26
        if (walktime <= 11 && (y - 10) < kris.y)
27
        {
28
            con = 1.2;
29
            kris.freeze = true;
30
            kris.fun = true;
31
            global.flag[7 disable_menu?] = 1;
32
            cutscene_master = 
scr_cutscene_make
scr_cutscene_make

function
scr_cutscene_make()
{ _cutscene_master = instance_create(0, 0, obj_cutscene_master); _cutscene_master.master_object = id; return _cutscene_master; }
();
33
            
scr_maincharacters_actors
scr_maincharacters_actors

function
scr_maincharacters_actors()
{ actor_count = 0; kr = 0; kr_actor = instance_create(obj_mainchara.x, obj_mainchara.y, obj_actor);
scr_actor_setup(kr, kr_actor, "kris");
kr_actor.sprite_index = obj_mainchara.sprite_index; kr_actor.depth = obj_mainchara.depth; with (obj_mainchara) visible = 0; for (__jj = 0; __jj < array_length_1d(global.cinstance); __jj++) { if (i_ex(global.cinstance[__jj])) { if (global.cinstance[__jj].name == "susie") { actor_count++; su = __jj + 1; su_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(su, su_actor, "susie");
su_actor.sprite_index = global.cinstance[__jj].sprite_index; su_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "ralsei") { actor_count++; ra = __jj + 1; ra_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(ra, ra_actor, "ralsei");
ra_actor.sprite_index = global.cinstance[__jj].sprite_index; ra_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "noelle") { actor_count++; no = __jj + 1; no_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(no, no_actor, "noelle");
no_actor.sprite_index = global.cinstance[__jj].sprite_index; no_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } } } }
();
34
            pos = [x + 20, y - 4];
35
            
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(kr);
36
            
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], walktime);
37
            if (i_ex(susie))
38
            {
39
                
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(su);
40
                pos = [x + 36, y - 10];
41
                
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], walktime);
42
            }
43
            if (i_ex(ralsei))
44
            {
45
                
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(ra);
46
                pos = [x + 4, y - 6];
47
                
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], walktime);
48
            }
49
            
c_pannable
c_pannable

function
c_pannable(arg0)
{
c_cmd("pannable", arg0, 0, 0, 0);
}
(1);
50
            if (global.flag[1538] == 0 && !final)
51
            {
52
                if (walktime < 15)
53
                    walktime = 15;
54
                pos = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
(undefined, "camloc");
55
                
c_pan
c_pan

function
c_pan(arg0, arg1, arg2)
{
c_cmd("pan", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], 15);
56
            }
57
            else
58
            {
59
                pos[0] = x - 281;
60
                pos[1] = y - 206;
61
                pos[0] = clamp(pos[0], 0, room_width - 640);
62
                pos[1] = clamp(pos[1], 0, room_height - 480);
63
                
c_pan
c_pan

function
c_pan(arg0, arg1, arg2)
{
c_cmd("pan", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], walktime);
64
            }
65
            
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(walktime);
66
            
c_actortokris
c_actortokris

function
c_actortokris()
{
c_cmd("actortokris", 0, 0, 0, 0);
}
();
67
            
c_actortocaterpillar
c_actortocaterpillar

function
c_actortocaterpillar()
{
c_cmd("actortocaterpillar", 0, 0, 0, 0);
}
();
68
            
c_terminatekillactors
c_terminatekillactors

function
c_terminatekillactors()
{
c_cmd("terminatekillactors", 0, 0, 0, 0);
}
();
69
        }
70
        else
71
        {
72
            obj_mainchara.cutscene = 1;
73
            kris.freeze = true;
74
            kris.fun = true;
75
            global.flag[7 disable_menu?] = 1;
76
            if (global.flag[1538] == 0 && !final)
77
            {
78
                if (walktime < 15)
79
                    walktime = 15;
80
                var pos3 = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
(undefined, "camloc");
81
                
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2, arg3 = -1)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; if (arg3 != -1) panner.locktype = arg3; }
(pos3[0], pos3[1], 15);
82
            }
83
            else
84
            {
85
                var cx = clamp(x - 281, 0, room_width - 640);
86
                var cy = clamp(y - 206, 0, room_height - 480);
87
                
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2, arg3 = -1)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; if (arg3 != -1) panner.locktype = arg3; }
(cx, cy, walktime);
88
            }
89
            snd_play(snd_wing);
90
            var jumpstrength = 12;
91
            with (obj_caterpillarchara)
92
            {
93
                visible = 0;
94
                image_alpha = 0;
95
                if (name == "susie")
96
                {
97
                    var pos2 = [other.x + 36, other.y - 10];
98
                    var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_susie_dw_jump_ball, 2, 2, 0.25, 0, c_white, 30050);
99
                    with (jumpmarker)
100
                    {
101
                        
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos2[0], pos2[1], jumpstrength, 16);
102
                        
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, 16);
103
                    }
104
                }
105
                else
106
                {
107
                    var pos2 = [other.x + 4, other.y - 6];
108
                    var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_ralsei_jump_ball, 2, 2, 0.25, 0, c_white, 30050);
109
                    with (jumpmarker)
110
                    {
111
                        depth = 30050;
112
                        
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos2[0], pos2[1], jumpstrength, 16);
113
                        
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, 16);
114
                    }
115
                }
116
            }
117
            with (kris)
118
            {
119
                visible = 0;
120
                image_alpha = 0;
121
                var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_kris_jump_ball_fixed, 2, 2, 0.25, 0, c_white, 30050);
122
                with (jumpmarker)
123
                {
124
                    
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos[0], pos[1], jumpstrength, 16);
125
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, 16);
126
                }
127
            }
128
        }
129
    }
130
    if (con >= 1.1 && con < 1.2)
131
    {
132
        con += 0.001;
133
        if (con >= 1.116)
134
        {
135
            con = 1.2;
136
            snd_play(snd_noise);
137
            with (obj_mainchara)
138
            {
139
                setxy(other.x + 20, other.y - 4);
140
                visible = true;
141
                image_alpha = 1;
142
                cutscene = false;
143
                global.interact = 0;
144
                freeze = false;
145
            }
146
            with (obj_caterpillarchara)
147
            {
148
                if (name == "susie")
149
                    setxy(other.x + 36, other.y - 10);
150
                else
151
                    setxy(other.x + 4, other.y - 6);
152
                visible = 1;
153
                image_alpha = 1;
154
            }
155
        }
156
    }
157
    if (con >= 1.2 && !i_ex(obj_cutscene_master))
158
    {
159
        con = 2;
160
        engaged = true;
161
        if (global.flag[1538] == 0 && !final)
162
        {
163
            camcon = 1;
164
            camcontrol = true;
165
            var pos = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
(undefined, "camloc");
166
            camx = pos[0];
167
            camy = pos[1];
168
        }
169
        else
170
        {
171
            with (obj_mainchara)
172
                scr_delay_var("cutscene", false, 1);
173
        }
174
    }
175
}
176
if (engaged)
177
{
178
    ubuff--;
179
    rbuff--;
180
    lbuff--;
181
    dbuff--;
182
    xbuff--;
183
    zbuff--;
184
    var this_frame_directions = [];
185
    if (up_h())
186
        array_push(this_frame_directions, 2);
187
    if (down_h())
188
        array_push(this_frame_directions, 0);
189
    if (right_h())
190
        array_push(this_frame_directions, 1);
191
    if (left_h())
192
        array_push(this_frame_directions, 3);
193
    var num_inputs = array_length(this_frame_directions);
194
    movedir = -1;
195
    if (num_inputs == 0)
196
    {
197
        currentdir = -1;
198
    }
199
    else if (num_inputs == 1 || currentdir == -1)
200
    {
201
        currentdir = this_frame_directions[0];
202
        movedir = currentdir;
203
    }
204
    else
205
    {
206
        for (var i = 0; i < num_inputs; i++)
207
        {
208
            if (this_frame_directions[i] == currentdir)
209
            {
210
                array_delete(this_frame_directions, i, 1);
211
                break;
212
            }
213
        }
214
        movedir = this_frame_directions[0];
215
    }
216
    if (movedir == 3)
217
    {
218
        if (lbuff < 3)
219
            lbuff = 3;
220
    }
221
    if (movedir == 1)
222
    {
223
        if (rbuff < 3)
224
            rbuff = 3;
225
    }
226
    if (movedir == 2)
227
    {
228
        if (ubuff < 3)
229
            ubuff = 3;
230
    }
231
    if (movedir == 0)
232
    {
233
        if (dbuff < 3)
234
            dbuff = 3;
235
    }
236
    if (button2_h())
237
        xbuff = 3;
238
    if (button1_p())
239
        zbuff = 3;
240
    var killblock = collision_rectangle(x, y, x + 80, y + 80, obj_trigger, 0, 0);
241
    if (i_ex(killblock))
242
    {
243
        if (killblock.extflag == "killpiano")
244
        {
245
            if (con < 400)
246
            {
247
                con = 400;
248
                timer = 0;
249
            }
250
        }
251
    }
252
}
253
var version = 1;
254
if (con == 2 && version == 1)
255
{
256
    var dir = -1;
257
    if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
258
    {
259
        if (keyboard_check_pressed(vk_numpad2))
260
            dir = 0;
261
        if (keyboard_check_pressed(vk_numpad6))
262
            dir = 1;
263
        if (keyboard_check_pressed(vk_numpad8))
264
            dir = 2;
265
        if (keyboard_check_pressed(vk_numpad4))
266
            dir = 3;
267
    }
268
    if (xbuff && !final)
269
    {
270
        dbuff = 0;
271
        rbuff = 0;
272
        ubuff = 0;
273
        lbuff = 0;
274
        zbuff = 0;
275
        endtimer++;
276
    }
277
    else
278
    {
279
        endtimer = 0;
280
    }
281
    if (endtimer >= endtime)
282
    {
283
        timer = 0;
284
        con = 98;
285
        endtimer = 0;
286
    }
287
    dir = movedir;
288
    if (button1_p())
289
    {
290
        soundtoplay = -1;
291
        if (!left_h() && !down_h() && !right_h() && !up_h())
292
            soundtoplay = 0;
293
        if (left_h())
294
            soundtoplay = 1;
295
        if (down_h())
296
            soundtoplay = 3;
297
        if (right_h())
298
            soundtoplay = 5;
299
        if (up_h())
300
            soundtoplay = 7;
301
        instrument = 524;
302
        var mypitch = 
scr_piano_determinepitch
scr_piano_determinepitch

function
scr_piano_determinepitch(arg0 = 0, arg1 = 1)
{ var pitcher = 1; if (arg1 == 1) { switch (arg0) { case 0: pitcher = 1; break; case 1: pitcher = 1.12; break; case 3: pitcher = 1.19; break; case 5: pitcher = 0.8928571428571428; break; case 7: pitcher = 0.5; break; } } if (arg1 == 2) { switch (arg0) { case 0: pitcher = 1; break; case 1: pitcher = 1.12; break; case 2: pitcher = 1.155; break; case 3: pitcher = 1.19; break; case 4: pitcher = 1.0414285714285714; break; case 5: pitcher = 0.8928571428571428; break; case 6: pitcher = 0.6964285714285714; break; case 7: pitcher = 0.5; break; case 8: pitcher = 0.3035714286; break; } } return pitcher; }
(soundtoplay);
303
        makenote = 1;
304
        snd_play(instrument, 0.7, mypitch);
305
    }
306
    if (dir != -1 && zbuff > 0)
307
    {
308
        zbuff = 0;
309
        var px = 0;
310
        var py = 0;
311
        var stoppingpoint = -1;
312
        var mysol = mysolid;
313
        var checkstep = 20;
314
        var checkcount = 0;
315
        switch (dir)
316
        {
317
            case 0:
318
                py = 1;
319
                break;
320
            case 1:
321
                px = 1;
322
                break;
323
            case 2:
324
                py = -1;
325
                break;
326
            case 3:
327
                px = -1;
328
                break;
329
        }
330
        var _list = ds_list_create();
331
        var _num = -4;
332
        if (stoppingpoint == -1)
333
            _num = collision_rectangle_list(x + (px * 40), y + (py * 40), (x + mywidth + (px * 40)) - 1, (y + myheight + (py * 40)) - 1, obj_solidblock, false, true, _list, false);
334
        if (_num > 0)
335
        {
336
            for (var j = 0; j < _num; j++)
337
            {
338
                if (stoppingpoint == -1)
339
                {
340
                    if (i_ex(ds_list_find_value(_list, j)))
341
                    {
342
                        var carryon = false;
343
                        if (ds_list_find_value(_list, j) == mysolid.mysolid)
344
                            carryon = true;
345
                        with (ds_list_find_value(_list, j))
346
                        {
347
                            if (variable_instance_exists(id, "extflag") && extflag == "breakable")
348
                                carryon = true;
349
                        }
350
                        if (!carryon)
351
                            stoppingpoint = true;
352
                    }
353
                }
354
            }
355
        }
356
        ds_list_destroy(_list);
357
        if (!stoppingpoint)
358
        {
359
            if (camcon == 1)
360
            {
361
                camcon = 2;
362
                global.flag[1538] = 1;
363
            }
364
            con = 3;
365
            if (ralsei_knocked_down > 0)
366
                ralshakex = 8;
367
            ralsei_knocked_down = 0;
368
            snd_play(snd_wing);
369
            myhspeed = 0;
370
            myvspeed = 0;
371
            switch (dir)
372
            {
373
                case 0:
374
                    myvspeed = 2;
375
                    break;
376
                case 1:
377
                    myhspeed = 2;
378
                    break;
379
                case 2:
380
                    myvspeed = -2;
381
                    break;
382
                case 3:
383
                    myhspeed = -2;
384
                    break;
385
            }
386
        }
387
    }
388
}
389
if (con == 3)
390
{
391
    var maxspeed = 28;
392
    if (myhspeed != 0)
393
        myhspeed = lerp(abs(myhspeed), maxspeed, 0.25) * sign(myhspeed);
394
    if (myvspeed != 0)
395
        myvspeed = lerp(abs(myvspeed), maxspeed, 0.25) * sign(myvspeed);
396
    var jumppoint = instance_place(x, y, obj_genmarker);
397
    if (jumppoint != -4)
398
    {
399
        if (jumppoint.extflag == "jump")
400
        {
401
            con = 4;
402
            snd_play(snd_motor_upper_2);
403
            yspeed = -16;
404
            yoffset = yspeed;
405
            exit;
406
        }
407
        else if (jumppoint.extflag == "camlock")
408
        {
409
            camcontrol = 1;
410
            camx = camerax();
411
            camy = cameray();
412
        }
413
        else if (jumppoint.extflag == "camfree")
414
        {
415
            camcontrol = 0;
416
            obj_mainchara.cutscene = 0;
417
        }
418
        else if (jumppoint.extflag == "explode")
419
        {
420
            con = 400;
421
        }
422
    }
423
    var _list = ds_list_create();
424
    var _num = -4;
425
    _num = collision_rectangle_list(x + myhspeed, y + myvspeed, (x + myhspeed + mywidth) - 1, (y + myvspeed + myheight) - 1, obj_solidblock, false, true, _list, false);
426
    var stoppingpoint = false;
427
    if ((floor(current_time) % 2) == 0)
428
    {
429
        var xOffset = 0.5;
430
        var yOffset = random(0.6) + 0.2;
431
        if (myvspeed != 0)
432
        {
433
            xOffset = yOffset;
434
            yOffset = 0.5;
435
        }
436
        var dust = instance_create(x + (xOffset * sprite_width), y + (yOffset * sprite_height), obj_animation);
437
        dust.sprite_index = spr_climb_dust_small;
438
        dust.image_xscale = 2;
439
        dust.image_yscale = 2;
440
        dust.image_speed = 0.5;
441
        dust.hspeed = random_range(-1, 1);
442
        dust.depth = depth + 10;
443
    }
444
    var foundblock = 0;
445
    if (_num > 0)
446
    {
447
        for (var j = 0; j < _num; j++)
448
        {
449
            if (i_ex(ds_list_find_value(_list, j)))
450
            {
451
                var carryon = false;
452
                if (ds_list_find_value(_list, j) == mysolid.mysolid)
453
                    carryon = true;
454
                with (ds_list_find_value(_list, j))
455
                {
456
                    if (variable_instance_exists(id, "extflag") && extflag == "breakable")
457
                        carryon = true;
458
                }
459
                if (!carryon)
460
                {
461
                    foundblock = ds_list_find_value(_list, j);
462
                    stoppingpoint = true;
463
                }
464
            }
465
        }
466
    }
467
    ds_list_destroy(_list);
468
    if (stoppingpoint)
469
    {
470
        if (i_ex(foundblock))
471
        {
472
            myhspeed = round(myhspeed);
473
            myvspeed = round(myvspeed);
474
            x = round(x);
475
            y = round(y);
476
            var endloop = false;
477
            for (var i = 0; i < (max(abs(myhspeed), abs(myvspeed)) + 1); i++)
478
            {
479
                if (!endloop)
480
                {
481
                    if (i_ex(collision_rectangle(x + myhspeed, y + myvspeed, (x + myhspeed + mywidth) - 1, (y + myvspeed + myheight) - 1, foundblock, false, true)))
482
                    {
483
                        if (myhspeed != 0)
484
                            myhspeed = (abs(myhspeed) - 1) * sign(myhspeed);
485
                        if (myvspeed != 0)
486
                            myvspeed = (abs(myvspeed) - 1) * sign(myvspeed);
487
                    }
488
                    else
489
                    {
490
                        endloop = true;
491
                        x += myhspeed;
492
                        y += myvspeed;
493
                    }
494
                }
495
            }
496
        }
497
        x = round(x / 40) * 40;
498
        y = round(y / 40) * 40;
499
        snd_play(snd_bomb);
500
        if (myhspeed != 0)
501
            shakex = 8;
502
        else
503
            shakey = 8;
504
        con = 2;
505
    }
506
    else if (!hitstop)
507
    {
508
        x += round(myhspeed);
509
        y += round(myvspeed);
510
    }
511
    else
512
    {
513
        hitstop--;
514
    }
515
}
516
if (con == 4)
517
{
518
    var jumppoint = instance_place(x, y, obj_genmarker);
519
    if (jumppoint != -4)
520
    {
521
        if (jumppoint.extflag == "explode")
522
        {
523
            con = 400;
524
            timer = 0;
525
        }
526
    }
527
    var maxspeed = 16;
528
    if (myhspeed != 0)
529
        myhspeed = lerp(abs(myhspeed), maxspeed, 0.25) * sign(myhspeed);
530
    if (myvspeed != 0)
531
        myvspeed = lerp(abs(myvspeed), maxspeed, 0.25) * sign(myvspeed);
532
    x += round(myhspeed);
533
    y += round(myvspeed);
534
    yspeed += 0.65;
535
    yoffset += yspeed;
536
    if (yoffset >= 0)
537
    {
538
        yoffset = 0;
539
        con = 3;
540
        snd_play(snd_impact);
541
        shakex = 12;
542
        yspeed = 0;
543
    }
544
}
545
if (con == 2 && version == 0)
546
{
547
    if (xbuff)
548
    {
549
        dbuff = 0;
550
        rbuff = 0;
551
        ubuff = 0;
552
        lbuff = 0;
553
        zbuff = 0;
554
        endtimer++;
555
    }
556
    else
557
    {
558
        endtimer = 0;
559
    }
560
    if (endtimer >= endtime)
561
    {
562
        timer = 0;
563
        con = 98;
564
        endtimer = 0;
565
    }
566
    var dir;
567
    if (dbuff > 0 && dbuff > ubuff && dbuff > rbuff && dbuff > lbuff)
568
        dir = 0;
569
    if (rbuff > 0 && rbuff > ubuff && rbuff > dbuff && rbuff > lbuff)
570
        dir = 1;
571
    if (ubuff > 0 && ubuff > dbuff && ubuff > rbuff && ubuff > lbuff)
572
        dir = 2;
573
    if (lbuff > 0 && lbuff > dbuff && lbuff > rbuff && lbuff > ubuff)
574
        dir = 3;
575
    if (dir != -1 && button1_p())
576
    {
577
        var px = 0;
578
        var py = 0;
579
        var stoppingpoint = -1;
580
        var mysol = mysolid;
581
        var checkstep = 20;
582
        var checkcount = 0;
583
        switch (dir)
584
        {
585
            case 0:
586
                py = 1;
587
                break;
588
            case 1:
589
                px = 1;
590
                break;
591
            case 2:
592
                py = -1;
593
                break;
594
            case 3:
595
                px = -1;
596
                break;
597
        }
598
        for (var i = 0; i < 1920; i += checkstep)
599
        {
600
            var _list = ds_list_create();
601
            var _num = -4;
602
            if (stoppingpoint == -1)
603
            {
604
                _num = collision_rectangle_list(x + (px * i), y + (py * i), (x + mywidth + (px * i)) - 1, (y + myheight + (py * i)) - 1, obj_solidblock, false, true, _list, false);
605
                checkcount++;
606
            }
607
            if (_num > 0)
608
            {
609
                for (var j = 0; j < _num; j++)
610
                {
611
                    if (stoppingpoint == -1)
612
                    {
613
                        if (i_ex(ds_list_find_value(_list, j)))
614
                        {
615
                            var carryon = false;
616
                            if (ds_list_find_value(_list, j) == mysolid)
617
                                carryon = true;
618
                            if (ds_list_find_value(_list, j) == mysolid.mysolid)
619
                                carryon = true;
620
                            with (ds_list_find_value(_list, j))
621
                            {
622
                                if (variable_instance_exists(id, "extflag") && extflag == "breakable")
623
                                    carryon = true;
624
                            }
625
                            if (!carryon)
626
                                stoppingpoint = i - checkstep;
627
                        }
628
                    }
629
                }
630
            }
631
            ds_list_destroy(_list);
632
        }
633
        if (stoppingpoint != 0)
634
        {
635
            var delay = round(stoppingpoint / 24);
636
            if (px != 0)
637
                
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, x + (px * stoppingpoint), delay);
638
            if (py != 0)
639
                
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, y + (py * stoppingpoint), delay);
640
            con = 3;
641
            scr_delay_var("con", 2, delay + 1);
642
            ubuff = 0;
643
            dbuff = 0;
644
            lbuff = 0;
645
            rbuff = 0;
646
            xbuff = 0;
647
            zbuff = 0;
648
        }
649
    }
650
}
651
if (con == 98)
652
{
653
    global.interact = 1;
654
    obj_mainchara.fun = false;
655
    obj_mainchara.freeze = false;
656
    global.flag[1585] = floor((x / 40) * 1000) + floor(y / 40);
657
    su_actor = -4;
658
    ra_actor = -4;
659
    camcontrol = 0;
660
    camcon = 0;
661
    engaged = false;
662
    con = 99;
663
    cutscene_master = 
scr_cutscene_make
scr_cutscene_make

function
scr_cutscene_make()
{ _cutscene_master = instance_create(0, 0, obj_cutscene_master); _cutscene_master.master_object = id; return _cutscene_master; }
();
664
    
scr_maincharacters_actors
scr_maincharacters_actors

function
scr_maincharacters_actors()
{ actor_count = 0; kr = 0; kr_actor = instance_create(obj_mainchara.x, obj_mainchara.y, obj_actor);
scr_actor_setup(kr, kr_actor, "kris");
kr_actor.sprite_index = obj_mainchara.sprite_index; kr_actor.depth = obj_mainchara.depth; with (obj_mainchara) visible = 0; for (__jj = 0; __jj < array_length_1d(global.cinstance); __jj++) { if (i_ex(global.cinstance[__jj])) { if (global.cinstance[__jj].name == "susie") { actor_count++; su = __jj + 1; su_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(su, su_actor, "susie");
su_actor.sprite_index = global.cinstance[__jj].sprite_index; su_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "ralsei") { actor_count++; ra = __jj + 1; ra_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(ra, ra_actor, "ralsei");
ra_actor.sprite_index = global.cinstance[__jj].sprite_index; ra_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "noelle") { actor_count++; no = __jj + 1; no_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(no, no_actor, "noelle");
no_actor.sprite_index = global.cinstance[__jj].sprite_index; no_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } } } }
();
665
    
c_pannable
c_pannable

function
c_pannable(arg0)
{
c_cmd("pannable", arg0, 0, 0, 0);
}
(1);
666
    var krpos = [x + 20, obj_mainchara.y + 6];
667
    var walktime = max(round(point_distance(krpos[0], krpos[1], obj_mainchara.x, obj_mainchara.y) / 4), 1);
668
    
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(kr);
669
    
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(krpos[0], krpos[1], walktime);
670
    var pos = 
scr_cameraideal
scr_cameraideal

function
scr_cameraideal(arg0 = obj_mainchara.x, arg1 = obj_mainchara.y)
{ if (!instance_exists(obj_mainchara)) return [0, 0, 0]; var camx = camerax(); var camy = cameray(); var idealcamx, idealcamy; with (obj_mainchara) { var roomw = room_width; var roomh = room_height; var vieww = view_wport[0]; var viewh = view_hport[0]; var nudger = instance_place(arg0, arg1, obj_camera_nudger); if (i_ex(nudger)) { if (nudger.lerpstrength != -4) nudgelerp = nudger.lerpstrength; var _yoff = -2; if (nudger.yamt > 0) _yoff = 2; var _xoff = -2; if (nudger.xamt > 0) _xoff = 2; nudgex = lerp(nudgex, nudger.xamt + _yoff, nudgelerp); nudgey = lerp(nudgey, nudger.yamt + _yoff, nudgelerp); nudgex = clamp(nudgex, abs(nudger.xamt) * -1, abs(nudger.xamt)); nudgey = clamp(nudgey, abs(nudger.yamt) * -1, abs(nudger.yamt)); } else { var _yoff = -2; if (nudgey < 0) _yoff = 2; var _xoff = -2; if (nudgex < 0) _xoff = 2; if (abs(0 - nudgex) > 1) nudgex = lerp(nudgex, 0 + _xoff, nudgelerp); else nudgex = 0; if (abs(0 - nudgey) > 1) nudgey = lerp(nudgey, 0 + _yoff, nudgelerp); else nudgey = 0; } idealcamx = clamp((arg0 - floor((vieww / 2) - (initwd / 2))) + nudgex, 0, roomw - vieww); idealcamy = clamp((arg1 - floor((viewh / 2) - (initht / 2))) + nudgey, 0, roomh - viewh); var clamper = instance_place(x, y, obj_camera_clamper); if (i_ex(clamper)) { var lclamp = 0; var rclamp = roomw - vieww; var uclamp = 0; var dclamp = roomh - viewh; if (clamper.xmin != -4) lclamp = clamper.xmin; if (clamper.xmax != -4) rclamp = clamper.xmax; if (clamper.ymin != -4) uclamp = clamper.ymin; if (clamper.ymax != -4) dclamp = clamper.ymax; idealcamx = clamp(idealcamx, lclamp, rclamp); idealcamy = clamp(idealcamy, uclamp, dclamp); } } return [round(idealcamx), round(idealcamy), point_distance(camx, camy, idealcamx, idealcamy)]; }
(krpos[0], krpos[1]);
671
    var pantime = clamp(round(pos[2] / 8), walktime, 15);
672
    
c_pan
c_pan

function
c_pan(arg0, arg1, arg2)
{
c_cmd("pan", arg0, arg1, arg2, 0);
}
(pos[0], pos[1], pantime);
673
    if (i_ex(su_actor))
674
    {
675
        
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(su);
676
        
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(krpos[0] + 8, krpos[1] - 26, pantime);
677
    }
678
    if (i_ex(ra_actor))
679
    {
680
        
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(ra);
681
        
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(krpos[0] - 18, krpos[1] - 26, pantime);
682
    }
683
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(pantime);
684
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(1);
685
    
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(kr);
686
    
c_facing
c_facing

function
c_facing(arg0)
{
c_cmd("facing", arg0, 0, 0, 0);
}
("d");
687
    if (i_ex(su_actor))
688
        
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(su);
689
    
c_facing
c_facing

function
c_facing(arg0)
{
c_cmd("facing", arg0, 0, 0, 0);
}
("d");
690
    if (i_ex(ra_actor))
691
        
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(ra);
692
    
c_facing
c_facing

function
c_facing(arg0)
{
c_cmd("facing", arg0, 0, 0, 0);
}
("d");
693
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(1);
694
    
c_pannable
c_pannable

function
c_pannable(arg0)
{
c_cmd("pannable", arg0, 0, 0, 0);
}
(0);
695
    
c_actortokris
c_actortokris

function
c_actortokris()
{
c_cmd("actortokris", 0, 0, 0, 0);
}
();
696
    
c_actortocaterpillar
c_actortocaterpillar

function
c_actortocaterpillar()
{
c_cmd("actortocaterpillar", 0, 0, 0, 0);
}
();
697
    
c_terminatekillactors
c_terminatekillactors

function
c_terminatekillactors()
{
c_cmd("terminatekillactors", 0, 0, 0, 0);
}
();
698
}
699
if (con == 99 && !i_ex(obj_cutscene_master))
700
{
701
    ubuff = 0;
702
    dbuff = 0;
703
    lbuff = 0;
704
    rbuff = 0;
705
    xbuff = 0;
706
    zbuff = 0;
707
    global.facing = 0;
708
    
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate(arg0 = "none")
{ if (arg0 == "all") { with (obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else if (arg0 == "none") { if (object_index == obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else { with (obj_caterpillarchara) { if (name == arg0) scr_caterpillar_interpolate_old(); } } } function scr_caterinterp(arg0 = "none") {
scr_caterpillar_interpolate(arg0);
} function scr_caterpillar_interpolate_old() { _newfacing =
scr_facing_letter_to_number(
scr_get_cardinal_direction(point_direction(x, y, obj_mainchara.x, obj_mainchara.y)));
remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (_iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x, _iaia / target); if (global.darkzone == 1) remy[_iaia] = lerp(obj_mainchara.y, y + 16, _iaia / target); else remy[_iaia] = lerp(obj_mainchara.y, y + 6, _iaia / target); facing[_iaia] = _newfacing; } }
("all");
709
    timer = 0;
710
    con = 0;
711
    global.interact = 0;
712
    global.flag[7 disable_menu?] = 0;
713
}
714
if (con == 400)
715
{
716
    timer++;
717
    var jumptime = 16;
718
    var jumpheight = 20;
719
    var explodedelay = 26;
720
    var maxspeed = 16;
721
    if (myhspeed != 0)
722
        myhspeed = lerp(abs(myhspeed), maxspeed, 0.25) * sign(myhspeed);
723
    if (myvspeed != 0)
724
        myvspeed = lerp(abs(myvspeed), maxspeed, 0.25) * sign(myvspeed);
725
    x += round(myhspeed);
726
    y += round(myvspeed);
727
    yspeed += 0.65;
728
    yoffset += yspeed;
729
    if (yoffset >= 0)
730
        image_alpha -= 0.1;
731
    if (timer == 1)
732
    {
733
        kris.freeze = true;
734
        kris.fun = true;
735
        obj_mainchara.cutscene = 1;
736
        var pos = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
("kr", "killpiano");
737
        var cx = clamp(pos[0] - 281, 0, room_width - 640);
738
        var cy = clamp(pos[1] - 206, 0, room_height - 480);
739
        
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2, arg3 = -1)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; if (arg3 != -1) panner.locktype = arg3; }
(cx, cy, jumptime);
740
        var jumpstrength = 12;
741
        engaged = false;
742
        snd_play(snd_wing);
743
        with (kris)
744
        {
745
            visible = 0;
746
            image_alpha = 0;
747
            var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_kris_jump_ball_fixed, 2, 2, 0.25, 0, c_white, obj_mainchara.depth);
748
            with (jumpmarker)
749
            {
750
                depth = 1000;
751
                
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos[0], pos[1], jumpheight, jumptime);
752
                
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, jumptime);
753
            }
754
            
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("visible", 1, jumptime);
755
            
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("image_alpha", 1, jumptime);
756
            
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("x", pos[0], jumptime);
757
            
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("y", pos[1], jumptime);
758
        }
759
        if (i_ex(susie))
760
        {
761
            with (susie)
762
            {
763
                image_xscale = 2;
764
                visible = 0;
765
                image_alpha = 0;
766
                fun = 1;
767
                pos = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
("su", "killpiano");
768
                var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_susie_dw_jump_ball, 2, 2, 0.25, 0, c_white, obj_mainchara.depth);
769
                with (jumpmarker)
770
                {
771
                    depth = 1000;
772
                    
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos[0], pos[1], jumpstrength, jumptime);
773
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, jumptime);
774
                }
775
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("visible", 1, jumptime);
776
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("image_alpha", 1, jumptime);
777
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("x", pos[0], jumptime);
778
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("y", pos[1], jumptime);
779
            }
780
        }
781
        if (i_ex(ralsei))
782
        {
783
            with (ralsei)
784
            {
785
                visible = 0;
786
                image_alpha = 0;
787
                fun = 1;
788
                pos = 
scr_heromarker
scr_heromarker

function
scr_heromarker(arg0 = "", arg1 = "")
{ var ____foundmarker = -4; var xpos = -1; var ypos = -1; var objindextocheck = 1365; if (string_pos("kr", arg0) != 0) objindextocheck = 544; if (string_pos("su", arg0) != 0) objindextocheck = 522; if (string_pos("ra", arg0) != 0) objindextocheck = 75; if (string_pos("no", arg0) != 0) objindextocheck = 933; if (string_pos("gen", arg0) != 0) objindextocheck = 1365; with (objindextocheck) { if (variable_instance_exists(id, "extflag")) { if (extflag == arg1) ____foundmarker = id; } } if (instance_exists(____foundmarker)) { xpos = ____foundmarker.x; ypos = ____foundmarker.y; } if (____foundmarker == -4) { debug_message("
scr_heromarker(" + arg0 + "," + arg1 + ") Object Not Found");
return [-4, -4, -4]; } return [xpos, ypos, ____foundmarker]; } function scr_genmarker(arg0 = "") { var marker = -4; with (obj_genmarker) { if (extflag == arg0) marker = id; } return marker; }
("ra", "killpiano");
789
                var jumpmarker = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x, y, spr_ralsei_jump_ball, 2, 2, 0.25, 0, c_white, obj_mainchara.depth);
790
                with (jumpmarker)
791
                {
792
                    depth = 1000;
793
                    
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(pos[0], pos[1], jumpstrength, jumptime);
794
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, jumptime);
795
                }
796
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("visible", 1, jumptime);
797
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("image_alpha", 1, jumptime);
798
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("x", pos[0], jumptime);
799
                
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
}
("y", pos[1], jumptime);
800
            }
801
        }
802
    }
803
    if (image_alpha <= 0)
804
    {
805
        visible = false;
806
        
scr_shakescreen
scr_shakescreen

function
scr_shakescreen(arg0 = 4, arg1 = 4)
{ var shaker = instance_create(x, y, obj_shake); if (i_ex(shaker)) { shaker.shakex = arg0; shaker.shakey = arg1; } }
(0, 8);
807
        snd_play(snd_impact);
808
        safe_delete(mysolid);
809
        instance_destroy();
810
    }
811
    if (timer == (1 + jumptime))
812
    {
813
        snd_play(snd_noise);
814
        global.facing = 0;
815
        with (ralsei)
816
        {
817
            fun = 0;
818
            scr_caterpillar_interpolate_old();
819
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0 = 0, arg1 = "all")
{ with (obj_caterpillarchara) { if (name == arg1 || arg1 == "all") { for (var _i = 0; _i < 25; _i += 1) facing[_i] = arg0; } } }
(global.facing);
820
            follow = true;
821
        }
822
        with (susie)
823
        {
824
            fun = 0;
825
            scr_caterpillar_interpolate_old();
826
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0 = 0, arg1 = "all")
{ with (obj_caterpillarchara) { if (name == arg1 || arg1 == "all") { for (var _i = 0; _i < 25; _i += 1) facing[_i] = arg0; } } }
(global.facing);
827
            follow = true;
828
        }
829
        with (kris)
830
        {
831
            fun = false;
832
            freeze = false;
833
        }
834
        global.flag[7 disable_menu?] = 0;
835
    }
836
}
837
if (shakex > 0)
838
    shakex -= 1;
839
if (shakey > 0)
840
    shakey -= 1;