Deltarune (Chapter 2) script viewer

← back to main script listing

gml_GlobalScript_scr_sort_by_distance

(view raw script w/o annotations or w/e)
1
function 
scr_sort_by_distance
scr_sort_by_distance

function
scr_sort_by_distance(arg0, arg1, arg2, arg3)
{ var _array = arg2; var _ascending = arg3; var _array_length = array_length_1d(arg0); var _distance_array; for (i = 0; i < _array_length; i++) _distance_array[i] = point_distance(arg0, arg1, _array[i].x, _array[i].y); var _tempValue = 0; var _loopAgain = true; var _emergencyStop = 0; while (_loopAgain == true && _emergencyStop < 100) { _loopAgain = false; _emergencyStop++; for (i = 1; i < _array_length; i++) { if (_distance_array[i] == _distance_array[i - 1]) { continue; } else if (_ascending == (_distance_array[i] < _distance_array[i - 1])) { _loopAgain = true; _tempValue = _distance_array[i - 1]; _distance_array[i - 1] = _distance_array[i]; _distance_array[i] = _tempValue; _tempValue = _array[i - 1]; _array[i - 1] = _array[i]; _array[i] = _tempValue; } } } if (_emergencyStop >= 100)
scr_debug_print("");
return _array; }
(arg0, arg1, arg2, arg3)
2
{
3
    var _array = arg2;
4
    var _ascending = arg3;
5
    var _array_length = array_length_1d(arg0);
6
    var _distance_array;
7
    for (i = 0; i < _array_length; i++)
8
        _distance_array[i] = point_distance(arg0, arg1, _array[i].x, _array[i].y);
9
    var _tempValue = 0;
10
    var _loopAgain = true;
11
    var _emergencyStop = 0;
12
    while (_loopAgain == true && _emergencyStop < 100)
13
    {
14
        _loopAgain = false;
15
        _emergencyStop++;
16
        for (i = 1; i < _array_length; i++)
17
        {
18
            if (_distance_array[i] == _distance_array[i - 1])
19
            {
20
                continue;
21
            }
22
            else if (_ascending == (_distance_array[i] < _distance_array[i - 1]))
23
            {
24
                _loopAgain = true;
25
                _tempValue = _distance_array[i - 1];
26
                _distance_array[i - 1] = _distance_array[i];
27
                _distance_array[i] = _tempValue;
28
                _tempValue = _array[i - 1];
29
                _array[i - 1] = _array[i];
30
                _array[i] = _tempValue;
31
            }
32
        }
33
    }
34
    if (_emergencyStop >= 100)
35
        
scr_debug_print
scr_debug_print

function
scr_debug_print(arg0)
{ }
("");
36
    return _array;
37
}