Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_credits_ch5_Draw_0

(view raw script w/o annotations or w/e)
1
if (con < 0)
2
    exit;
3
if (!_active)
4
    exit;
5
scr_84_set_draw_font
scr_84_set_draw_font

function
scr_84_set_draw_font(arg0)
{ global.chemg_font = arg0; draw_set_font(
scr_84_get_font(arg0));
}
("main");
6
draw_set_halign(fa_center);
7
draw_set_alpha(creditalpha);
8
if (credit_index < 0)
9
{
10
    var line_total = 0;
11
    for (var i = 0; i < array_length(title_credit); i++)
12
        line_total++;
13
    var max_height = __view_get(e__VW.HView, 0);
14
    var max_line_height = (line_total + 1) * 16;
15
    for (var i = 0; i < array_length(title_credit); i++)
16
    {
17
        var _y_offset = (max_height - max_line_height) / 2;
18
        draw_text(x_pos, y_pos + (line_height * i) + _y_offset, string_hash_to_newline(title_credit[i]));
19
    }
20
}
21
else if (credit_index < array_length(credits))
22
{
23
    var line_total = 0;
24
    for (var i = 0; i < array_length(credits[credit_index]); i++)
25
    {
26
        var _credit = credits[credit_index][i];
27
        line_total += (array_length(_credit.header) + array_length(_credit.text_line) + 1);
28
        if (_credit.columns == 2)
29
            line_total -= ((array_length(_credit.text_line) / 2) - 1);
30
    }
31
    var max_height = __view_get(e__VW.HView, 0);
32
    var max_line_height = (line_total + 1) * 16;
33
    var credit_line_amount = 0;
34
    var credit_line_offset = 1;
35
    var _y_offset = (max_height - max_line_height) / 2;
36
    if (array_length(credits[credit_index]) > 3 || credit_index == 4)
37
    {
38
        credit_line_offset = 0.5;
39
        _y_offset += 10;
40
    }
41
    for (var i = 0; i < array_length(credits[credit_index]); i++)
42
    {
43
        var _credit = credits[credit_index][i];
44
        if (_credit.columns == 1)
45
        {
46
            var has_subheader = is_array(_credit.text_line[0]);
47
            if (has_subheader)
48
            {
49
                var _yy = credit_line_amount * line_height;
50
                if (array_length(_credit.text_line) > 4)
51
                    _y_offset -= line_height;
52
                draw_set_color(menugray);
53
                for (var j = 0; j < array_length(_credit.header); j++)
54
                    draw_text(x_pos, _yy + y_pos + (line_height * j) + _y_offset, string_hash_to_newline(_credit.header[j]));
55
                draw_set_color(c_white);
56
                var _text_y = line_height * array_length(_credit.header);
57
                var subheader_y = _text_y;
58
                var prev_header_amount = 0;
59
                for (var k = 0; k < array_length(_credit.text_line); k++)
60
                {
61
                    if (is_array(_credit.text_line[k]))
62
                    {
63
                        var subheaders = _credit.text_line[k];
64
                        prev_header_amount = array_length(subheaders) - 1;
65
                        draw_set_color(menugray);
66
                        for (var l = 0; l < array_length(subheaders); l++)
67
                            draw_text(x_pos, _yy + y_pos + subheader_y + (line_height * l) + _y_offset, string_hash_to_newline(subheaders[l]));
68
                        draw_set_color(c_white);
69
                        subheader_y += (line_height * (array_length(subheaders) + 1));
70
                    }
71
                    else
72
                    {
73
                        _text_y += (line_height * prev_header_amount);
74
                        draw_text(x_pos, _yy + y_pos + _text_y + (line_height * k) + _y_offset, string_hash_to_newline(_credit.text_line[k]));
75
                    }
76
                }
77
            }
78
            else
79
            {
80
                var _yy = credit_line_amount * line_height;
81
                draw_set_color(menugray);
82
                for (var j = 0; j < array_length(_credit.header); j++)
83
                {
84
                    if (i == 0 && j == 0 && (credit_index >= 4 && credit_index < 7))
85
                        draw_set_color(c_yellow);
86
                    draw_text(x_pos, _yy + y_pos + (line_height * j) + _y_offset, string_hash_to_newline(_credit.header[j]));
87
                    draw_set_color(menugray);
88
                }
89
                draw_set_color(c_white);
90
                var _text_y = line_height * array_length(_credit.header);
91
                for (var k = 0; k < array_length(_credit.text_line); k++)
92
                    draw_text(x_pos, _yy + y_pos + _text_y + (line_height * k) + _y_offset, string_hash_to_newline(_credit.text_line[k]));
93
            }
94
            credit_line_amount += (array_length(_credit.header) + array_length(_credit.text_line) + credit_line_offset);
95
        }
96
        else
97
        {
98
            var _yy = credit_line_amount * line_height;
99
            draw_set_color(menugray);
100
            for (var j = 0; j < array_length(_credit.header); j++)
101
                draw_text(x_pos, _yy + y_pos + (line_height * j) + _y_offset, string_hash_to_newline(_credit.header[j]));
102
            draw_set_color(c_white);
103
            var _text_y = line_height * array_length(_credit.header);
104
            draw_set_halign(fa_left);
105
            for (k = 0; k < (array_length(_credit.text_line) / 2); k++)
106
                draw_text(168, _yy + y_pos + _text_y + (line_height * k) + _y_offset, string_hash_to_newline(_credit.text_line[k]));
107
            draw_set_halign(fa_right);
108
            var line_index = 0;
109
            var k = array_length(_credit.text_line) / 2;
110
            while (k < array_length(_credit.text_line))
111
            {
112
                draw_text(152, _yy + y_pos + _text_y + (line_height * line_index) + _y_offset, string_hash_to_newline(_credit.text_line[k]));
113
                line_index++;
114
                k++;
115
            }
116
            draw_set_halign(fa_center);
117
            credit_line_amount += (array_length(_credit.header) + (array_length(_credit.text_line) / 2) + 1);
118
        }
119
    }
120
}
121
draw_set_halign(fa_left);
122
draw_set_color(c_white);
123
draw_set_alpha(1);
124
125
enum e__VW
126
{
127
    XView,
128
    YView,
129
    WView,
130
    HView,
131
    Angle,
132
    HBorder,
133
    VBorder,
134
    HSpeed,
135
    VSpeed,
136
    Object,
137
    Visible,
138
    XPort,
139
    YPort,
140
    WPort,
141
    HPort,
142
    Camera,
143
    SurfaceID
144
}