Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_dw_teevie_bg_Draw_0

(view raw script w/o annotations or w/e)
1
var max_y = room_height;
2
var middle_pos = 80;
3
ossafe_fill_rectangle_color(0, 0, room_width, middle_pos, c_black, c_black, #24265E, #24265E, false);
4
ossafe_fill_rectangle_color(0, middle_pos, room_width, max_y, #24265E, #24265E, c_black, c_black, false);
5
bg_speed -= (bg_speed_max * 0.4);
6
bg_speed_y += (bg_speed_y_max * 0.4);
7
if (bg_speed < -640)
8
    bg_speed += 640;
9
if (bg_speed_y > -480)
10
    bg_speed_y -= 480;
11
var x_offset = camerax();
12
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_01_tile, 0, (x_offset * 0.8) + (bg_speed * 0.5), cameray() + (bg_speed_y * 0.5), 2, 2, merge_color(#24265E, c_black, 0.5), 0.6);
13
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_02_tile, 0, (x_offset * 0.8) + (bg_speed * 0.5), cameray() + (bg_speed_y * 0.5) + 20, 2, 2, #24265E, 0.5);
14
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_01_tile, 0, (x_offset * 0.6) + bg_speed, cameray() + bg_speed_y, 2, 2, merge_color(#24265E, #090916, 0.2), 1);
15
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_02_tile, 0, (x_offset * 0.6) + bg_speed, cameray() + bg_speed_y + 20, 2, 2, merge_color(#24265E, #090916, 0.7), 1);
16
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_03_tile, 0, (x_offset * 0.6) + bg_speed, cameray() + bg_speed_y, 2, 2, merge_color(#24265E, c_blue, 0.2), 0.6);
17
draw_sprite_tiled_ext(spr_dw_teevie_bg_star_03_tile, 0, (x_offset * 0.6) + bg_speed + 40, cameray() + bg_speed_y + 20, 2, 2, merge_color(#24265E, #090916, 0.1), 1);
18
draw_set_alpha(0.5);
19
ossafe_fill_rectangle_color(0, 0, room_width, max_y, #24265E, #24265E, c_black, c_black, false);
20
draw_set_alpha(1);
21
if (!sprite_exists(girder_sprite[0]))
22
{
23
    if (!surface_exists(bg_surface))
24
        bg_surface = surface_create(room_width / 2, room_height / 2);
25
    surface_set_target(bg_surface);
26
    draw_clear_alpha(c_black, 0);
27
    var _girder_height = room_height / 2 / 18;
28
    var _girder_width = room_width / 2 / 340;
29
    for (var i = 0; i < _girder_width; i++)
30
    {
31
        for (var j = 0; j < _girder_height; j++)
32
        {
33
            var x_pos = 40 + (i * 300);
34
            draw_sprite_ext(spr_dw_teevie_bg_girder_tile, 0, x_pos, j * 18, 1, 1, 0, merge_color(#1E1B27, c_black, 0.15), 1);
35
        }
36
    }
37
    surface_reset_target();
38
    girder_sprite[0] = sprite_create_from_surface(bg_surface, 0, 0, room_width / 2, room_height / 2, false, true, 0, 0);
39
    surface_set_target(bg_surface);
40
    draw_clear_alpha(c_black, 0);
41
    _girder_height = room_height / 2 / 30;
42
    _girder_width = room_width / 2 / 190;
43
    for (var i = 0; i < _girder_width; i++)
44
    {
45
        for (var j = 0; j < _girder_height; j++)
46
        {
47
            var x_pos = 20 + (i * 170);
48
            draw_sprite_ext(spr_dw_teevie_bg_girder_medium_tile, 0, x_pos, j * 30, 1, 1, 0, merge_color(#1E1B27, c_black, 0.15), 1);
49
        }
50
    }
51
    surface_reset_target();
52
    girder_sprite[1] = sprite_create_from_surface(bg_surface, 0, 0, room_width / 2, room_height / 2, false, true, 0, 0);
53
    surface_set_target(bg_surface);
54
    draw_clear_alpha(c_black, 0);
55
    _girder_height = room_height / 2 / 76;
56
    _girder_width = room_width / 2 / 430;
57
    for (var i = 0; i < _girder_width; i++)
58
    {
59
        for (var j = 0; j < _girder_height; j++)
60
        {
61
            var x_pos = 50 + (i * 380);
62
            draw_sprite_ext(spr_dw_teevie_bg_girder_large_tile, 0, x_pos, j * 76, 1, 1, 0, merge_color(#1E1B27, c_black, 0.75), 1);
63
        }
64
    }
65
    surface_reset_target();
66
    girder_sprite[2] = sprite_create_from_surface(bg_surface, 0, 0, room_width / 2, room_height / 2, false, true, 0, 0);
67
    surface_set_target(bg_surface);
68
    draw_clear_alpha(c_black, 0);
69
    _girder_height = room_height / 2 / 10;
70
    _girder_width = room_width / 2 / 290;
71
    for (var i = 0; i < _girder_width; i++)
72
    {
73
        for (var j = 0; j < _girder_height; j++)
74
        {
75
            var x_pos = 100 + (i * 190);
76
            draw_sprite_ext(spr_dw_teevie_bg_girder_small_tile, 0, x_pos, j * 10, 1, 1, 0, merge_color(#1E1B27, c_black, 0.6), 1);
77
        }
78
    }
79
    surface_reset_target();
80
    girder_sprite[3] = sprite_create_from_surface(bg_surface, 0, 0, room_width / 2, room_height / 2, false, true, 0, 0);
81
    surface_set_target(bg_surface);
82
    draw_clear_alpha(c_black, 0);
83
    _girder_width = room_width / 2 / sprite_get_width(spr_dw_teevie_bg_girder_lights);
84
    for (var i = 0; i < _girder_width; i++)
85
        draw_sprite_ext(spr_dw_teevie_bg_girder_lights, 0, i * sprite_get_width(spr_dw_teevie_bg_girder_lights), 0, 1, 1, 0, c_white, 1);
86
    surface_reset_target();
87
    girder_sprite[4] = sprite_create_from_surface(bg_surface, 0, 0, room_width / 2, sprite_get_height(spr_dw_teevie_bg_girder_lights), false, true, 0, 0);
88
    surface_free(bg_surface);
89
}
90
else
91
{
92
    draw_sprite_ext(girder_sprite[0], 0, x_offset * 0.5, 0, 2, 2, 0, c_white, 1);
93
    draw_sprite_ext(girder_sprite[1], 0, x_offset * 0.6, 0, 2, 2, 0, c_white, 1);
94
    draw_sprite_ext(girder_sprite[2], 0, x_offset * 0.4, 0, 2, 2, 0, c_white, 1);
95
    draw_sprite_ext(girder_sprite[3], 0, x_offset * 0.3, 0, 2, 2, 0, c_white, 1);
96
    draw_sprite_ext(girder_sprite[4], 0, 0, 0, 2, 2, 0, c_white, 1);
97
}