|
1
|
if (!surface_exists(surf))
|
|
2
|
surf = surface_create(sprite_width + buffer, sprite_height + buffer);
|
|
3
|
if (sprite_width != surface_get_width(surf) || sprite_height != surface_get_height(surf))
|
|
4
|
surface_resize(surf, sprite_width + buffer, sprite_height + buffer);
|
|
5
|
if (i_ex(target))
|
|
6
|
{
|
|
7
|
sprite_index = target.sprite_index;
|
|
8
|
image_index = target.image_index;
|
|
9
|
image_xscale = target.image_xscale;
|
|
10
|
image_yscale = target.image_yscale;
|
|
11
|
x = target.x;
|
|
12
|
y = target.y;
|
|
13
|
}
|
|
14
|
if (image_alpha > 0)
|
|
15
|
{
|
|
16
|
surface_set_target(surf);
|
|
17
|
draw_clear_alpha(c_red, 0);
|
|
18
|
var _half = buffer * 0.5;
|
|
19
|
gpu_set_colorwriteenable(false, false, false, true);
|
|
20
|
draw_sprite_ext(sprite_index, image_index, _half, _half - image_yscale, image_xscale, image_yscale, 0, c_white, 1);
|
|
21
|
draw_sprite_ext(sprite_index, image_index, _half + image_xscale, _half, image_xscale, image_yscale, 0, c_white, 1);
|
|
22
|
draw_sprite_ext(sprite_index, image_index, _half - image_xscale, _half, image_xscale, image_yscale, 0, c_white, 1);
|
|
23
|
draw_sprite_ext(sprite_index, image_index, _half, _half + image_yscale, image_xscale, image_yscale, 0, c_white, 1);
|
|
24
|
gpu_set_fog(true, #202020, 0, 1);
|
|
25
|
gpu_set_colorwriteenable(true, true, true, true);
|
|
26
|
draw_sprite_ext(sprite_index, image_index, _half, _half, image_xscale, image_yscale, 0, c_white, 1);
|
|
27
|
gpu_set_fog(false, c_black, 0, 0);
|
|
28
|
surface_reset_target();
|
|
29
|
draw_surface_ext(surf, x - _half, y - _half, 1, 1, 0, c_white, image_alpha);
|
|
30
|
}
|