Deltarune (Chapter 3) 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 (initialized == 0)
2
    initialized = 1;
3
if (waiting == 0)
4
{
5
    for (i = current_command; i < maximum_command; i += 1)
6
    {
7
        command_actor[i] = actor_selected_id;
8
        _c = command[i];
9
        
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]; } ...
();
10
        if (breakme == 1)
11
        {
12
            breakme = 0;
13
            break;
14
        }
15
    }
16
}
17
current_command = i + 1;
18
if (waiting == 1)
19
{
20
    if (cs_wait_amount > 0)
21
    {
22
        cs_wait_timer++;
23
        if (cs_wait_timer >= cs_wait_amount)
24
        {
25
            cs_wait_amount = 0;
26
            cs_wait_timer = 0;
27
            waiting = 0;
28
        }
29
    }
30
    if (cs_wait_box >= 0)
31
    {
32
        if (!i_ex(mydialoguer))
33
        {
34
            cs_wait_box = -1;
35
            waiting = 0;
36
            cs_wait_box_end = false;
37
        }
38
        else if (mydialoguer.active == 1)
39
        {
40
            if (i_ex(mydialoguer.writer))
41
            {
42
                if ((mydialoguer.writer.msgno == cs_wait_box && (!cs_wait_box_end || mydialoguer.writer.halt > 0)) || mydialoguer.writer.msgno > cs_wait_box)
43
                {
44
                    cs_wait_box = -1;
45
                    waiting = 0;
46
                    cs_wait_box_end = false;
47
                }
48
            }
49
        }
50
    }
51
    if (cs_wait_dialogue == 1)
52
    {
53
        if (!i_ex(mydialoguer))
54
        {
55
            cs_wait_dialogue = 0;
56
            waiting = 0;
57
        }
58
    }
59
    if (cs_wait_if == 1)
60
    {
61
        var passed = 0;
62
        var myvar;
63
        if (!variable_instance_exists(cs_wait_if_objectid, cs_wait_if_varname))
64
            passed = 1;
65
        else
66
            myvar = variable_instance_get(cs_wait_if_objectid, cs_wait_if_varname);
67
        if (passed == 0)
68
        {
69
            if (cs_wait_if_operator == "=")
70
            {
71
                if (myvar == cs_wait_if_varvalue)
72
                    passed = 1;
73
            }
74
            else if (cs_wait_if_operator == "!=")
75
            {
76
                if (myvar != cs_wait_if_varvalue)
77
                    passed = 1;
78
            }
79
            else if (cs_wait_if_operator == ">=")
80
            {
81
                if (myvar >= cs_wait_if_varvalue)
82
                    passed = 1;
83
            }
84
            else if (cs_wait_if_operator == "<=")
85
            {
86
                if (myvar <= cs_wait_if_varvalue)
87
                    passed = 1;
88
            }
89
            else if (cs_wait_if_operator == ">")
90
            {
91
                if (myvar > cs_wait_if_varvalue)
92
                    passed = 1;
93
            }
94
            else if (cs_wait_if_operator == "<")
95
            {
96
                if (myvar < cs_wait_if_varvalue)
97
                    passed = 1;
98
            }
99
            else
100
            {
101
                passed = 1;
102
            }
103
        }
104
        if (passed)
105
        {
106
            cs_wait_if = 0;
107
            waiting = 0;
108
        }
109
    }
110
}
111
if (terminate_this_frame == 1)
112
{
113
    if (kill_actors == 1)
114
    {
115
        for (jj = 0; jj < 20; jj++)
116
        {
117
            with (actor_id[jj])
118
                instance_destroy();
119
        }
120
    }
121
    instance_destroy();
122
}