if (target_count == 0) exit; var _size_average = 0; var _size = []; var _pos = []; var _depth = []; var _sprite_point = new Vector2(); var _sprite_size = new Vector2(); _size[0] = new Vector2(0, 0); _pos[0] = new Vector2(0, 0); _size[1] = new Vector2(0, 0); _pos[1] = new Vector2(0, 0); _depth[0] = 0; _depth[1] = 0; for (var i = 0; i < target_count; i++) { _sprite_point.x = 0; _sprite_point.y = 0; if (!i_ex(targets[i])) { array_delete(targets, i, 1); array_delete(target_offset, i, 1); array_delete(target_size, i, 1); i--; target_count--; continue; } else { with (targets[i]) { if (other.auto_update || other.update) { other.target_offset[i] = scr_getspritepoint_relative(id, 0.5, 1); other.target_size[i] = new Vector2(sprite_width, sprite_height); } _sprite_point.x = x + other.target_offset[i].x; _sprite_point.y = y + other.target_offset[i].y; _sprite_size = other.target_size[i]; if (other.average || other.target_count <= 2) { _size[0].x += _sprite_size.x; _size[0].y += _sprite_size.y; _pos[0].add(_sprite_point); _depth[0] += depth; } else if (i == 0) { _size[0].x = _sprite_size.x; _size[0].y = _sprite_size.y; _size[1].x = _sprite_size.x; _size[1].y = _sprite_size.y; _pos[0].add(_sprite_point); _pos[1].add(_sprite_point); _depth[0] = depth; _depth[1] = depth; } else { _size[0].x = min(_size[0].x, _sprite_size.x); _size[1].x = max(_size[1].x, _sprite_size.x); _size[0].y = min(_size[0].y, _sprite_size.y); _size[1].y = max(_size[1].y, _sprite_size.y); _pos[0].x = min(_pos[0].x, _sprite_point.x); _pos[1].x = max(_pos[1].x, _sprite_point.x); _pos[0].y = min(_pos[0].y, _sprite_point.y); _pos[1].y = max(_pos[1].y, _sprite_point.y); _depth[0] = min(_depth[0], depth); _depth[1] = max(_depth[1], depth); } } } } update = false; if (target_count == 0) exit; if (average || target_count <= 2) { x = _pos[0].x / target_count; y = _pos[0].y / target_count; depth = _depth[0] / target_count; image_xscale = _size[0].x / target_count / 10; image_yscale = _size[0].y / target_count / 10; } else { x = (_pos[0].x + _pos[1].x) / 2; y = (_pos[0].y + _pos[1].y) / 2; depth = (_depth[0] + _depth[1]) / 2; image_xscale = (_size[0].x + _size[1].x) / 20; image_yscale = (_size[0].y + _size[1].y) / 20; }