Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_dw_teevie_sams_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_set_font(
scr_84_get_font
scr_84_get_font

function
scr_84_get_font(arg0)
{ if (!variable_global_exists("chemg_last_get_font")) global.chemg_last_get_font = ""; if (arg0 != global.chemg_last_get_font) global.chemg_last_get_font = arg0; return ds_map_find_value(global.font_map, arg0); }
("main"));
11
    draw_text_transformed(x, y, current_text, 1, 1, 0);
12
    surface_reset_target();
13
    text_sprite = sprite_create_from_surface(bg_surface, x, y, x + string_width(current_text), y + string_height(current_text), false, true, 0, 0);
14
    sprite_set_offset(text_sprite, sprite_get_width(text_sprite) / 2, sprite_get_height(text_sprite) / 2);
15
    surface_free(bg_surface);
16
    if (!surface_exists(outline_surface))
17
        outline_surface = surface_create(camera_get_view_width(0), camera_get_view_height(0));
18
    surface_set_target(outline_surface);
19
    draw_clear_alpha(c_black, 0);
20
    draw_set_color(c_white);
21
    var _x_pos = 40;
22
    var _y_pos = 40;
23
    draw_text_transformed(_x_pos + 1, _y_pos + 1, current_text, 1, 1, 0);
24
    draw_text_transformed(_x_pos - 1, _y_pos - 1, current_text, 1, 1, 0);
25
    draw_text_transformed(_x_pos, _y_pos + 1, current_text, 1, 1, 0);
26
    draw_text_transformed(_x_pos + 1, _y_pos, current_text, 1, 1, 0);
27
    draw_text_transformed(_x_pos, _y_pos - 1, current_text, 1, 1, 0);
28
    draw_text_transformed(_x_pos - 1, _y_pos, current_text, 1, 1, 0);
29
    draw_text_transformed(_x_pos + 1, _y_pos - 1, current_text, 1, 1, 0);
30
    draw_text_transformed(_x_pos - 1, _y_pos + 1, current_text, 1, 1, 0);
31
    surface_reset_target();
32
    outline_sprite = sprite_create_from_surface(outline_surface, _x_pos - 1, _y_pos - 1, string_width(current_text) + 1, string_height(current_text) + 1, false, true, 0, 0);
33
    sprite_set_offset(outline_sprite, (sprite_get_width(outline_sprite) / 2) + 1, (sprite_get_height(outline_sprite) / 2) + 1);
34
    surface_free(outline_surface);
35
}
36
else
37
{
38
    timer++;
39
    if (timer == 60)
40
        fade_out(8);
41
    if (flashing)
42
        current_alpha += 0.4;
43
    draw_sprite_ext(outline_sprite, 0, camerax() + (view_wport[0] / 2), y + 90, 4, 4, 0, current_outline_color, image_alpha + sin(current_alpha));
44
    if (is_love)
45
    {
46
        shader_set(shd_rainbow);
47
        _uniUV = shader_get_uniform(shd_rainbow, "u_uv");
48
        _uniTime = shader_get_uniform(shd_rainbow, "u_time");
49
        _uniSpeed = shader_get_uniform(shd_rainbow, "u_speed");
50
        _time -= bonus_color_speed;
51
        var uv = sprite_get_uvs(text_sprite, 0);
52
        shader_set_uniform_f(_uniUV, uv[0], uv[2]);
53
        shader_set_uniform_f(_uniSpeed, _speed);
54
        shader_set_uniform_f(_uniTime, _time);
55
    }
56
    var _offset = (global.lang == "ja") ? -4 : 0;
57
    draw_sprite_ext(text_sprite, 0, camerax() + (view_wport[0] / 2), y + 90 + _offset, 4, 4, 0, current_color, image_alpha + sin(current_alpha));
58
    if (is_love)
59
        shader_reset();
60
}