Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_cutscene_master_Step_0

(view raw script w/o annotations or w/e)
1
if (!debug_pause)
2
{
3
    if (initialized == 0)
4
        initialized = 1;
5
    if (waiting == 0)
6
    {
7
        for (i = current_command; i < maximum_command; i += 1)
8
        {
9
            command_actor[i] = actor_selected_id;
10
            _c = command[i];
11
            
scr_cutscene_commands
scr_cutscene_commands

function
scr_cutscene_commands()
{ if (_c == "delaycmd") { delaycmd = instance_create(0, 0, obj_cutscene_delaycmd); delaycmd.master_object = master_object; delaycmd.command_actor[0] = command_actor[i]; delaycmd.alarm[0] = command_arg1[i]; delaycmd._c = command_arg2[i]; delaycmd.command_arg1[0] = command_arg3[i]; delaycmd.command_arg2[0] = command_arg4[i]; delaycmd.command_arg3[0] = command_arg5[i]; delaycmd.command_arg4[0] = command_arg6[i]; if (instant) { delaycmd.alarm[0] = 0; delaycmd.instant = 1; with (delaycmd) event_user(0); } } if (_c == "walk") { if (!instant) { actor_move = instance_create(0, 0, obj_move_actor); actor_move.target = command_actor[i]; actor_move.direction_word = command_arg1[i]; actor_move.speed = command_arg2[i]; actor_move.time = command_arg3[i]; with (actor_move) event_user(8); } else { command_actor[i].x += lengthdir_x(command_arg2[i] * command_arg3[i], (
scr_facing_letter_to_number(command_arg1[i]) * 90) - 90);
command_actor[i].y += lengthdir_y(command_arg2[i] * command_arg3[i], (
scr_facing_letter_to_number(command_arg1[i]) * 90) - 90);
} } if (_c == "walkto") { var _object = command_arg1[i]; var _tx = _object.x + command_arg2[i]; var _ty = _object.y + command_arg3[i]; if (command_arg5[i] == true && command_arg6[i] == true) { var _yyoff1 = command_actor[i].sprite_height - command_actor[i].sprite_yoffset; var _yyoff2 = _object.sprite_height - _object.sprite_yoffset; var _xxoff1 = (command_actor[i].sprite_width / 2) - command_actor[i].sprite_xoffset; var _xxoff2 = (_object.sprite_width / 2) - _object.sprite_xoffset; _ty += (_yyoff2 - _yyoff1); _tx += (_xxoff1 - _xxoff2); } else if (command_arg5[i] == true && command_arg6[i] == false) { _tx -= ((command_actor[i].sprite_width / 2) - command_actor[i].sprite_xoffset); _ty -= (command_actor[i].sprite_height - command_actor[i].sprite_yoffset); } command_arg1[i] = _tx; command_arg2[i] = _ty; command_arg3[i] = command_arg4[i]; _c = "walkdirect"; } if (_c == "walkdirect") { if (!instant) { actor_move = instance_create(0, 0, obj_move_to_point); actor_move.target = command_actor[i]; actor_move.movex = command_arg1[i]; actor_move.movey = command_arg2[i]; if (command_arg1[i] == 0) actor_move.movex = command_actor[i].x; if (command_arg2[i] == 0) actor_move.movey = command_actor[i].y; if (command_arg3[i] >= 0) { actor_move.movemax = command_arg3[i]; } else { var __walktime = point_distance(command_actor[i].x, command_actor[i].y, command_arg1[i], command_arg2[i]) / -command_arg3[i]; if (__walktime < 1) __walktime = 1; actor_move.movemax = __walktime; if (command_arg4[i] == 1) { cs_wait_amount = ceil(__walktime); if (instant) cs_wait_amount = 1; cs_wait_timer = 0; waiting = 1; breakme = 1; } } } else { command_actor[i].x = command_arg1[i]; command_actor[i].y = command_arg2[i]; } ...
();
12
            if (breakme == 1)
13
            {
14
                breakme = 0;
15
                break;
16
            }
17
        }
18
    }
19
    current_command = i + 1;
20
    if (waiting == 1)
21
    {
22
        if (cs_wait_amount > 0)
23
        {
24
            cs_wait_timer++;
25
            if (cs_wait_timer >= cs_wait_amount)
26
            {
27
                cs_wait_amount = 0;
28
                cs_wait_timer = 0;
29
                waiting = 0;
30
            }
31
        }
32
        if (cs_wait_box >= 0)
33
        {
34
            if (!i_ex(mydialoguer))
35
            {
36
                cs_wait_box = -1;
37
                waiting = 0;
38
                cs_wait_box_end = false;
39
            }
40
            else if (mydialoguer.active == 1)
41
            {
42
                if (i_ex(mydialoguer.writer))
43
                {
44
                    if ((mydialoguer.writer.msgno == cs_wait_box && (!cs_wait_box_end || mydialoguer.writer.halt > 0)) || mydialoguer.writer.msgno > cs_wait_box)
45
                    {
46
                        cs_wait_box = -1;
47
                        waiting = 0;
48
                        cs_wait_box_end = false;
49
                    }
50
                }
51
            }
52
        }
53
        if (cs_wait_dialogue == 1)
54
        {
55
            if (!i_ex(mydialoguer))
56
            {
57
                cs_wait_dialogue = 0;
58
                waiting = 0;
59
            }
60
        }
61
        if (cs_wait_if == 1)
62
        {
63
            var passed = 0;
64
            var myvar;
65
            if (!variable_instance_exists(cs_wait_if_objectid, cs_wait_if_varname))
66
                passed = 1;
67
            else
68
                myvar = variable_instance_get(cs_wait_if_objectid, cs_wait_if_varname);
69
            if (passed == 0)
70
            {
71
                if (cs_wait_if_operator == "=")
72
                {
73
                    if (myvar == cs_wait_if_varvalue)
74
                        passed = 1;
75
                }
76
                else if (cs_wait_if_operator == "!=")
77
                {
78
                    if (myvar != cs_wait_if_varvalue)
79
                        passed = 1;
80
                }
81
                else if (cs_wait_if_operator == ">=")
82
                {
83
                    if (myvar >= cs_wait_if_varvalue)
84
                        passed = 1;
85
                }
86
                else if (cs_wait_if_operator == "<=")
87
                {
88
                    if (myvar <= cs_wait_if_varvalue)
89
                        passed = 1;
90
                }
91
                else if (cs_wait_if_operator == ">")
92
                {
93
                    if (myvar > cs_wait_if_varvalue)
94
                        passed = 1;
95
                }
96
                else if (cs_wait_if_operator == "<")
97
                {
98
                    if (myvar < cs_wait_if_varvalue)
99
                        passed = 1;
100
                }
101
                else
102
                {
103
                    passed = 1;
104
                }
105
            }
106
            if (passed)
107
            {
108
                cs_wait_if = 0;
109
                waiting = 0;
110
            }
111
        }
112
    }
113
    if (terminate_this_frame == 1)
114
    {
115
        if (kill_actors == 1)
116
        {
117
            for (jj = 0; jj < 20; jj++)
118
            {
119
                with (actor_id[jj])
120
                    instance_destroy();
121
            }
122
        }
123
        instance_destroy();
124
    }
125
}