Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_dw_teevie_bonus_word_fx_Draw_0

(view raw script w/o annotations or w/e)
1
if (!is_init)
2
    exit;
3
if (!sprite_exists(text_sprite))
4
{
5
    if (!surface_exists(bg_surface))
6
        bg_surface = surface_create(camera_get_view_width(0), camera_get_view_height(0));
7
    surface_set_target(bg_surface);
8
    draw_clear_alpha(c_black, 0);
9
    draw_set_color(c_white);
10
    draw_text_transformed(x, y, current_text, 1, 1, 0);
11
    surface_reset_target();
12
    text_sprite = sprite_create_from_surface(bg_surface, x, y, x + string_width(current_text), y + string_height(current_text), false, true, 0, 0);
13
    sprite_set_offset(text_sprite, sprite_get_width(text_sprite) / 2, sprite_get_height(text_sprite) / 2);
14
    surface_free(bg_surface);
15
}
16
else
17
{
18
    shader_set(shd_rainbow);
19
    _uniUV = shader_get_uniform(shd_rainbow, "u_uv");
20
    _uniTime = shader_get_uniform(shd_rainbow, "u_time");
21
    _uniSpeed = shader_get_uniform(shd_rainbow, "u_speed");
22
    _time -= bonus_color_speed;
23
    var uv = sprite_get_uvs(text_sprite, 0);
24
    shader_set_uniform_f(_uniUV, uv[0], uv[2]);
25
    shader_set_uniform_f(_uniSpeed, _speed);
26
    shader_set_uniform_f(_uniTime, _time);
27
    uv = sprite_get_uvs(text_sprite, 0);
28
    shader_set_uniform_f(_uniUV, uv[0], uv[2]);
29
    shader_set_uniform_f(_uniSpeed, _speed);
30
    shader_set_uniform_f(_uniTime, _time);
31
    siner++;
32
    draw_sprite_ext(text_sprite, 0, x + 290, y + 80, 4 + abs(sin(siner / 8)), 4, sin(siner / 8) * 4, c_white, 1);
33
    shader_reset();
34
}