Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_following_silhouette_Draw_0

(view raw script w/o annotations or w/e)
1
if (!i_ex(target_char))
2
{
3
    instance_destroy();
4
    exit;
5
}
6
if (!target_char.visible)
7
    exit;
8
if (target_char == noone)
9
    exit;
10
if (init == 0)
11
{
12
    depth = 0;
13
    if (target_char != obj_mainchara)
14
    {
15
        if (target_char.name == "susie")
16
            color = #EA79C8;
17
        if (target_char.name == "ralsei")
18
            color = #B5E61D;
19
        if (target_char.name == "noelle")
20
        {
21
            color = c_yellow;
22
            rsprite = spr_noelle_young_silhouette;
23
        }
24
    }
25
    init = 1;
26
}
27
if (copy_sprite)
28
{
29
    sprite_index = target_char.sprite_index;
30
    image_index = target_char.image_index;
31
}
32
else if (target_char.sprite_index == target_char.usprite)
33
{
34
    sprite_index = usprite;
35
}
36
else if (target_char.sprite_index == target_char.dsprite)
37
{
38
    sprite_index = dsprite;
39
}
40
else if (target_char.sprite_index == target_char.lsprite)
41
{
42
    sprite_index = lsprite;
43
}
44
else if (target_char.sprite_index == target_char.rsprite || target_char.sprite_index == spr_noelle_walk_face_up_dw)
45
{
46
    obj_silhouette_base.outline = true;
47
    sprite_index = rsprite;
48
}
49
else
50
{
51
    sprite_index = target_char.sprite_index;
52
}
53
depth = 4000;
54
gpu_set_blendenable(false);
55
gpu_set_colorwriteenable(false, false, false, true);
56
draw_set_alpha(0);
57
draw_rectangle(0, 0, room_width, room_height, false);
58
draw_set_alpha(1);
59
gpu_set_alphatestenable(true);
60
gpu_set_blendenable(true);
61
if (instance_number(obj_silhouette_cover) > 0)
62
{
63
    for (i = 0; i < instance_number(obj_silhouette_cover); i++)
64
    {
65
        var _cover = instance_find(obj_silhouette_cover, i);
66
        if (tiled_cover)
67
            
scr_draw_sprite_tiled_area
scr_draw_sprite_tiled_area

function
scr_draw_sprite_tiled_area()
{ var sprite = argument[0]; var subimg = argument[1]; var xx = argument[2]; var yy = argument[3]; var x1 = argument[4]; var y1 = argument[5]; var x2 = argument[6]; var y2 = argument[7]; var xscale = argument[8]; var yscale = argument[9]; var col = (argument_count > 10) ? argument[10] : 16777215; var alpha = (argument_count > 11) ? argument[11] : 1; var sw = sprite_get_width(sprite) * xscale; var sh = sprite_get_height(sprite) * yscale; var i = x1 - ((x1 % sw) - (xx % sw)) - (sw * ((x1 % sw) < (xx % sw))); var j = y1 - ((y1 % sh) - (yy % sh)) - (sh * ((y1 % sh) < (yy % sh))); var jj = j; while (i <= x2) { while (j <= y2) { var left; if (i <= x1) left = x1 - i; else left = 0; var X = i + left; var top; if (j <= y1) top = y1 - j; else top = 0; var Y = j + top; var width; if (x2 <= (i + sw)) width = ((sw - ((i + sw) - x2)) + 1) - left; else width = sw - left; var height; if (y2 <= (j + sh)) height = ((sh - ((j + sh) - y2)) + 1) - top; else height = sh - top; draw_sprite_part_ext(sprite, subimg, left, top, width, height, X, Y, xscale, yscale, col, alpha); j += sh; } j = jj; i += sw; } return 0; }
(_cover.sprite_index, 0, _cover.x, _cover.y, _cover.x, _cover.y, _cover.x + (sprite_get_width(_cover.sprite_index) * _cover.image_xscale), _cover.y + (sprite_get_height(_cover.sprite_index) * _cover.image_yscale), 2, 2, c_white, 1);
68
        else
69
            draw_sprite_ext(_cover.sprite_index, _cover.image_index, _cover.x, _cover.y, _cover.image_xscale, _cover.image_yscale, _cover.image_angle, c_white, 1);
70
    }
71
}
72
gpu_set_blendenable(true);
73
if (outline)
74
{
75
    gpu_set_blendmode_ext(bm_zero, bm_zero);
76
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x, target_char.y, target_char.image_xscale, target_char.image_yscale, 0, c_black, 1);
77
}
78
gpu_set_colorwriteenable(true, true, true, true);
79
gpu_set_blendmode_ext(bm_dest_alpha, bm_inv_dest_alpha);
80
gpu_set_alphatestenable(true);
81
d3d_set_fog(true, color, 0, 1);
82
if (outline)
83
{
84
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x - 2, target_char.y, target_char.image_xscale, target_char.image_yscale, 0, image_blend, 1);
85
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x + 2, target_char.y, target_char.image_xscale, target_char.image_yscale, 0, image_blend, 1);
86
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x, target_char.y - 2, target_char.image_xscale, target_char.image_yscale, 0, image_blend, 1);
87
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x, target_char.y + 2, target_char.image_xscale, target_char.image_yscale, 0, image_blend, 1);
88
}
89
else
90
{
91
    draw_sprite_ext(sprite_index, target_char.image_index, target_char.x, target_char.y, target_char.image_xscale, target_char.image_yscale, 0, c_black, 1);
92
}
93
draw_sprite_ext(sprite_index, target_char.image_index, target_char.x, target_char.y, target_char.image_xscale, target_char.image_yscale, 0, c_black, 0.5);
94
d3d_set_fog(false, c_black, 0, 0);
95
gpu_set_alphatestenable(false);
96
gpu_set_blendmode(bm_normal);