Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_music_event_manager_Step_0

(view raw script w/o annotations or w/e)
1
if (track1_instance == -4)
2
    exit;
3
var oldtrackpos = trackpos;
4
trackpos = audio_sound_get_track_position(track1_instance);
5
if (i_ex(obj_rhythmgame) && obj_rhythmgame.safety_mode)
6
    trackpos = obj_rhythmgame.trackpos;
7
if (oldtrackpos > trackpos && loop)
8
{
9
    con = 0;
10
    next_beat = scr_ceil_to_beat((trackpos + 0.001) - delta_time, bpm, 1, beat_offset * (60 / bpm));
11
    while (con < event_count && trackpos > event_time[con])
12
        con++;
13
}
14
if (con < event_count && trackpos >= event_time[con])
15
{
16
    while (con < event_count && trackpos >= event_time[con])
17
    {
18
        if (event_var[con] == "event")
19
        {
20
            with (event_id[con])
21
                event_user(other.event_value[con]);
22
        }
23
        else
24
        {
25
            variable_instance_set(event_id[con], event_var[con], event_value[con]);
26
        }
27
        con++;
28
    }
29
}
30
if (beat_event && trackpos >= next_beat)
31
{
32
    if (beat_var == "event")
33
    {
34
        with (beat_id)
35
            event_user(other.beat_value);
36
    }
37
    else
38
    {
39
        variable_instance_set(beat_id, beat_var, beat_value);
40
    }
41
    next_beat = scr_ceil_to_beat(trackpos + 0.001, bpm, 1, beat_offset * (60 / bpm));
42
}
43
if (loop && auto_loop && loop_end > 0 && trackpos >= loop_end)
44
    audio_sound_set_track_position(track1_instance, loop_start + (trackpos - loop_end));