Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_cloud_render_new_Draw_0

(view raw script w/o annotations or w/e)
1
if (i_ex(obj_rotating_tower_controller_new))
2
{
3
    if (front == true)
4
        depth = obj_rotating_tower_controller_new.depth - 200;
5
    else
6
        depth = obj_rotating_tower_controller_new.depth + 50;
7
}
8
else if (!i_ex(obj_dw_churchc_titanclimb2_post))
9
{
10
    if (front)
11
        depth = 1000;
12
    else
13
        depth = 2000005;
14
}
15
if (!surface_exists(surface))
16
    surface = surface_create(640 * surface_scale, 840 * surface_scale);
17
var _dark_col = 3150105;
18
var _dark2_col = 2230537;
19
var _light_col = 8138558;
20
var _dist_min = 175;
21
var _dist_max = 300;
22
var _dist = front ? _dist_min : _dist_max;
23
var _sign = front ? 1 : -1;
24
var _cnum = array_length(obj_cloud_controller_new.clouds);
25
var _hero_obj = 1049;
26
if (i_ex(obj_climb_kris))
27
    _hero_obj = 27;
28
surface_set_target(surface);
29
draw_clear_alpha(c_black, 0);
30
var _draw_scale, _col;
31
while (_dist >= _dist_min && _dist <= _dist_max)
32
{
33
    var _dist_scale = (_dist - _dist_min) / (_dist_max - _dist_min);
34
    switch (style)
35
    {
36
        case 0:
37
            _col = 16777215;
38
            break;
39
        case 1:
40
            _col_factor = ((front ? (_dist_scale * 0.5) : (-_dist_scale * 0.5)) * 0.5) + 0.5;
41
            _col = merge_color(_dark_col, _light_col, _col_factor);
42
            break;
43
    }
44
    _col = 0;
45
    if (!front)
46
    {
47
        draw_sprite_ext(spr_rising_bg, 0, 0, ((surface_y_offset + (30 * (1 - obj_cloud_controller_new.y_scale)) + (_dist * 0.2 * _sign)) * surface_scale) - 20, 2 * surface_scale, 2 * (surface_scale + ((1 - _dist_scale) * 0.2)), 0, _col, 1);
48
    }
49
    else if (_dist == _dist_max)
50
    {
51
        var offset = hasspawns ? 4 : 0;
52
        if (obj_cloud_controller_new.sloped)
53
        {
54
            draw_set_color(c_black);
55
            ossafe_fill_rectangle(0, 170, 640, 480, 0);
56
        }
57
        else
58
        {
59
            draw_sprite_ext(spr_rising_bg, (obj_cloud_controller_new.y_scale > 0) ? 1 : 0, 0, (((surface_y_offset - (100 * (1 - obj_cloud_controller_new.y_scale))) + (_dist * 0.3 * _sign)) * surface_scale) + offset, 2 * surface_scale, 2 * surface_scale, 0, _col, 1);
60
        }
61
    }
62
    for (var _c = 0; _c < _cnum; _c++)
63
    {
64
        var _cloud = obj_cloud_controller_new.clouds[_c];
65
        if (_cloud.z_depth < 0)
66
        {
67
            if (!other.front)
68
                continue;
69
        }
70
        else if (other.front)
71
        {
72
            continue;
73
        }
74
        if (_cloud.dist != _dist)
75
            continue;
76
        var _x_offset = sin((current_time / 500) + _cloud.base_angle) * 4 * surface_scale;
77
        var _y_offset = (sin((current_time / 250) + (_cloud.base_angle * 0.05)) * 4 * surface_scale) + (surface_y_offset * surface_scale);
78
        var _img_scale = 1;
79
        switch (style)
80
        {
81
            case 0:
82
                _col = 16777215;
83
                break;
84
            case 1:
85
                _col_factor = ((_cloud.z_depth / _dist_max) * -0.5) + 0.5;
86
                _col = merge_color(_dark_col, _light_col, _col_factor);
87
                break;
88
        }
89
        _col = merge_color(c_black, c_white, 0.55 - (0.45 * sin(degtorad(_cloud.angle))));
90
        if (hasspawns && (_cloud.__id % 3) == 2)
91
        {
92
            draw_sprite_ext(spr_titan_spawn_idle, current_time / 100, (_cloud.x * surface_scale) + _x_offset, ((_cloud.y * surface_scale) + _y_offset) - 1, 2 * _img_scale * surface_scale, 2 * _img_scale * surface_scale, 0, _col, 1);
93
        }
94
        else
95
        {
96
            if (outline)
97
                draw_sprite_ext(spr_rising_cloudx2, _cloud.__id % 3, (_cloud.x * surface_scale) + _x_offset, ((_cloud.y * surface_scale) + _y_offset) - 1, 2 * _img_scale * surface_scale, 2 * _img_scale * surface_scale, 0, _col, 1);
98
            draw_sprite_ext(spr_rising_cloudx2_outline, _cloud.__id % 3, (_cloud.x * surface_scale) + _x_offset, (_cloud.y * surface_scale) + _y_offset, 2 * _img_scale * surface_scale, 2 * _img_scale * surface_scale, 0, _col, 1);
99
        }
100
    }
101
    _draw_scale = 1 / surface_scale;
102
    var _col_factor = 0.5 + (_dist_scale * 0.5 * _sign);
103
    if (followcamera)
104
        xoffset = camerax();
105
    switch (style)
106
    {
107
        case 0:
108
            _col = merge_color(_dark_col, _light_col, _col_factor);
109
            break;
110
        case 1:
111
            _col = 16777215;
112
            break;
113
    }
114
    _col = 16777215;
115
    _dist += (front ? 125 : -125);
116
}
117
surface_reset_target();
118
if (front)
119
    draw_surface_ext(surface, xoffset, (cameray() - 200) + distance_from_kris + 2, _draw_scale, _draw_scale, 0, _col, 1);
120
else
121
    draw_surface_ext(surface, xoffset, (cameray() - 200) + distance_from_kris, _draw_scale, _draw_scale, 0, _col, 1);
122
distance_from_kris += (verticalspeed * caminfluence);
123
if (i_ex(obj_rotating_tower_controller_new))
124
    tower_y_prev = obj_rotating_tower_controller_new.tower_y;
125
if (last_hero_y != 0)
126
    distance_from_kris -= ((cameray() - last_hero_y) * caminfluence);
127
last_hero_y = cameray();
128
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
129
{
130
}