Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_screen_channel_change_backup_2_Draw_0

(view raw script w/o annotations or w/e)
1
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
2
{
3
    if (shader_check == 1)
4
    {
5
    }
6
    if (keyboard_check_pressed(ord("B")) || gamepad_button_check_pressed(0, gp_face3))
7
    {
8
        active = true;
9
        timer = lifetime;
10
        if (audio_is_playing(static_noise))
11
            snd_stop(static_noise);
12
        static_noise = snd_play(snd_tv_static);
13
    }
14
    if (keyboard_check_pressed(ord("N")) || gamepad_button_check_pressed(0, gp_shoulderl))
15
    {
16
        infinite = !infinite;
17
        if (infinite)
18
            timer = lifetime;
19
        debug_print("infinite: " + string(infinite));
20
    }
21
    if (keyboard_check_pressed(ord("V")) || gamepad_button_check_pressed(0, gp_shoulderr))
22
    {
23
        scroll = !scroll;
24
        debug_print("scroll: " + string(scroll));
25
    }
26
}
27
if (scroll && !surface_exists(old_screen_surf))
28
    old_screen_surf = surface_create(640, 480);
29
if (!active || timer <= 0)
30
{
31
    if (scroll)
32
        surface_copy(old_screen_surf, 0, 0, application_surface);
33
    exit;
34
}
35
if (!surface_exists(screen_surf))
36
{
37
    if (safe_mode)
38
        screen_surf = surface_create(640, 480);
39
    else
40
        screen_surf = surface_create(640, 481);
41
}
42
surface_set_target(screen_surf);
43
draw_clear_alpha(c_gray, 0);
44
surface_reset_target();
45
var _ease = 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(timer / lifetime, 2);
46
var _strength = strength * _ease;
47
var _noisec = 0;
48
var _num = -1;
49
var _scany = 0;
50
if (scroll && !safe_mode)
51
{
52
    var _yy = scroll ? 
scr_wrap_new
scr_wrap_new

function
scr_wrap_new()
{ var _val = argument[0]; var _max = argument[2]; var _min = argument[1]; if ((_val % 1) == 0) { while (_val > _max || _val < _min) { if (_val > _max) { _val = (_min + _val) - _max - 1; } else if (_val < _min) { _val = ((_max + _val) - _min) + 1; } else { } } return _val; } else { var _old = argument[0] + 1; while (_val != _old) { _old = _val; if (_val < _min) { _val = _max - (_min - _val); } else if (_val > _max) { _val = _min + (_val - _max); } else { } } return _val; } }
((1 - (timer / lifetime)) * 500, 0, 480) : i;
53
    surface_copy(screen_surf, 0, -_yy, old_screen_surf);
54
    surface_copy_part(screen_surf, 0, 500 - _yy, application_surface, camerax(), cameray(), 640, 480);
55
}
56
else
57
{
58
    surface_copy_part(screen_surf, 0, 0, application_surface, camerax(), cameray(), 640, 480);
59
}
60
draw_sprite_part(noise_sprite, 0, 0, scan_x, 480, 1, 0, 480);
61
if (scroll)
62
    _strength /= 3;
63
if (safe_mode)
64
{
65
    var _xx = camerax();
66
    var _yy = cameray();
67
    var _px = 2;
68
    for (var _i = 0; _i < 480; _i += _px)
69
    {
70
        var _sin = (sin(((siner * 20) + _i) / multa) * _strength * 0.75) + ((cos(((siner * -20) + _i) / multb) * _strength) / 4);
71
        var _absin = ceil(abs(_sin));
72
        draw_surface_part(screen_surf, 0, _i, 640, _px, _xx + _sin, _yy + _i);
73
        if (_sin > 0)
74
            draw_surface_part(screen_surf, 640 - _absin, _i, _absin, _px, (_xx + _sin) - _absin, _yy + _i);
75
        else if (_sin < 0)
76
            draw_surface_part(screen_surf, 0, _i, _absin, _px, _xx + _sin + 640, _yy + _i);
77
    }
78
}
79
else
80
{
81
    shader_set(shd_channel_change);
82
    shader_set_uniform_f(shader_get_uniform(shd_channel_change, "texel"), 0.0015625, 0.002079002079002079);
83
    shader_set_uniform_f(shader_get_uniform(shd_channel_change, "strength"), _strength);
84
    draw_surface(screen_surf, camerax(), cameray());
85
    shader_reset();
86
}
87
scan_x = floor(scan_x);
88
scan_x = 
scr_wrap_new
scr_wrap_new

function
scr_wrap_new()
{ var _val = argument[0]; var _max = argument[2]; var _min = argument[1]; if ((_val % 1) == 0) { while (_val > _max || _val < _min) { if (_val > _max) { _val = (_min + _val) - _max - 1; } else if (_val < _min) { _val = ((_max + _val) - _min) + 1; } else { } } return _val; } else { var _old = argument[0] + 1; while (_val != _old) { _old = _val; if (_val < _min) { _val = _max - (_min - _val); } else if (_val > _max) { _val = _min + (_val - _max); } else { } } return _val; } }
(scan_x + (scroll_speed * scroll_dir * (timer / lifetime) * 4), 0, 479);
89
if (!infinite && timer > 0)
90
{
91
    timer--;
92
    if (timer <= 0)
93
    {
94
        snd_stop(static_noise);
95
        multa = random_range(10, 40);
96
        multb = random_range(5, 10);
97
    }
98
}
99
siner++;
100
var _alpha = 0;
101
if (i_ex(obj_tenna_enemy))
102
{
103
    _alpha = _ease / 3;
104
    if (i_ex(obj_actor_tenna) && obj_actor_tenna.changechanneltimermax < 25)
105
        _alpha = lerp(0, _ease / 3, strength / 200);
106
}
107
else
108
{
109
    _alpha = _ease / 2;
110
}
111
draw_sprite_tiled_ext(spr_static_effect, timer / 2, 0, 0, 2, 2, c_white, _alpha);