Deltarune (Chapter 4) script viewer

← back to main script listing

gml_GlobalScript_scr_sort_by_depth

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

function
scr_sort_by_depth(arg0, arg1)
{ if (arg1) { array_sort(arg0, function(arg0, arg1) { return arg0.depth - arg1.depth; }); } else { array_sort(arg0, function(arg0, arg1) { return arg1.depth - arg0.depth; }); } return arg0; } function scr_sort_by_depth_old(arg0, arg1) { var _array = arg0; var _ascending = arg1; var _array_length = array_length(arg0); var _loopStart = 1; var _depth_array; for (i = 0; i < _array_length; i++) _depth_array[i] = _array[i].depth; var _tempValue = 0; var _loopAgain = true; while (_loopAgain == true) { _loopAgain = false; for (i = _loopStart; i < _array_length; i++) { if (i == _loopStart) _loopStart = _array_length - 1; if (_depth_array[i] == _depth_array[i - 1]) { if (_ascending == (real(_array[i].id) > real(_array[i - 1].id))) continue; } if (_ascending == (_depth_array[i] < _depth_array[i - 1]) || _depth_array[i] == _depth_array[i - 1]) { _loopAgain = true; _tempValue = _depth_array[i - 1]; _depth_array[i - 1] = _depth_array[i]; _depth_array[i] = _tempValue; _tempValue = _array[i - 1]; _loopStart = min(_loopStart, max(i - 1, 1)); _array[i - 1] = _array[i]; _array[i] = _tempValue; } } } return _array; }
(arg0, arg1)
2
{
3
    if (arg1)
4
    {
5
        array_sort(arg0, function(arg0, arg1)
6
        {
7
            return arg0.depth - arg1.depth;
8
        });
9
    }
10
    else
11
    {
12
        array_sort(arg0, function(arg0, arg1)
13
        {
14
            return arg1.depth - arg0.depth;
15
        });
16
    }
17
    return arg0;
18
}
19
20
function scr_sort_by_depth_old(arg0, arg1)
21
{
22
    var _array = arg0;
23
    var _ascending = arg1;
24
    var _array_length = array_length(arg0);
25
    var _loopStart = 1;
26
    var _depth_array;
27
    for (i = 0; i < _array_length; i++)
28
        _depth_array[i] = _array[i].depth;
29
    var _tempValue = 0;
30
    var _loopAgain = true;
31
    while (_loopAgain == true)
32
    {
33
        _loopAgain = false;
34
        for (i = _loopStart; i < _array_length; i++)
35
        {
36
            if (i == _loopStart)
37
                _loopStart = _array_length - 1;
38
            if (_depth_array[i] == _depth_array[i - 1])
39
            {
40
                if (_ascending == (real(_array[i].id) > real(_array[i - 1].id)))
41
                    continue;
42
            }
43
            if (_ascending == (_depth_array[i] < _depth_array[i - 1]) || _depth_array[i] == _depth_array[i - 1])
44
            {
45
                _loopAgain = true;
46
                _tempValue = _depth_array[i - 1];
47
                _depth_array[i - 1] = _depth_array[i];
48
                _depth_array[i] = _tempValue;
49
                _tempValue = _array[i - 1];
50
                _loopStart = min(_loopStart, max(i - 1, 1));
51
                _array[i - 1] = _array[i];
52
                _array[i] = _tempValue;
53
            }
54
        }
55
    }
56
    return _array;
57
}