|
1
|
function scr_ground_checksscr_ground_checks
function scr_ground_checks(arg0, arg1, arg2)
{
if (!variable_instance_exists(id, "__platchecks_list") || !ds_exists(__platchecks_list, ds_type_list))
__platchecks_list = scr_ds_list_create_managed();
ds_list_clear(__platchecks_list);
var _num = instance_place_list(arg0, arg1, arg2, __platchecks_list, false);
var _above = false;
var _best = -4;
if (_num > 0)
{
var vs = ceil(abs(vspeed));
for (var i = 0; i < _num; i++)
{
var _obj = ds_list_find_value(__platchecks_list, i);
if (_obj.is_barrier && ignore_barriers)
continue;
if ((bbox_bottom - vs) < (_obj.bbox_top + 2))
_above = true;
if (_obj.is_slope)
{
if (_obj.plattype == 0 && y < _obj.y)
_above = true;
if (_obj.plattype == 1)
_above = true;
}
if (_obj.quicksand && bbox_bottom < _obj.bbox_bottom)
_above = true;
if (_above)
{
if (_best == -4 || (_obj.y < _best.y && _obj.y >= bbox_bottom))
_best = _obj;
}
}
}
return _best;
}
function scr_ground_entity_checks(arg0, arg1)
{
if (!variable_instance_exists(id, "__platchecks_list") || !ds_exists(__platchecks_list, ds_type_list))
__platchecks_list = scr_ds_list_create_managed();
ds_list_clear(__platchecks_list);
var _num = instance_place_list(arg0, arg1, 691, __platchecks_list, false);
var _above = false;
var _floor_too_small = false;
if (_num > 0)
{
for (var i = 0; i < _num; i++)
{
var _obj = ds_list_find_value(__platchecks_list, i);
if ((bbox_bottom - ceil(abs(vspeed) + 2)) < (_obj.bbox_top + 2))
_above = true;
var _area;
with (_obj)
_area = abs(bbox_right - bbox_left) * abs(bbox_bottom - bbox_top);
var _myarea = abs(bbox_right - bbox_left) * abs(bbox_bottom - bbox_top);
if ((_area * 5) < _myarea)
_floor_too_small = true;
if (_above && !_floor_too_small && _obj.rideable)
return _obj;
}
}
return -4;
} (arg0, arg1, arg2)
|
|
2
|
{
|
|
3
|
if (!variable_instance_exists(id, "__platchecks_list") || !ds_exists(__platchecks_list, ds_type_list))
|
|
4
|
__platchecks_list = scr_ds_list_create_managed();
|
|
5
|
ds_list_clear(__platchecks_list);
|
|
6
|
var _num = instance_place_list(arg0, arg1, arg2, __platchecks_list, false);
|
|
7
|
var _above = false;
|
|
8
|
var _best = -4;
|
|
9
|
if (_num > 0)
|
|
10
|
{
|
|
11
|
var vs = ceil(abs(vspeed));
|
|
12
|
for (var i = 0; i < _num; i++)
|
|
13
|
{
|
|
14
|
var _obj = ds_list_find_value(__platchecks_list, i);
|
|
15
|
if (_obj.is_barrier && ignore_barriers)
|
|
16
|
continue;
|
|
17
|
if ((bbox_bottom - vs) < (_obj.bbox_top + 2))
|
|
18
|
_above = true;
|
|
19
|
if (_obj.is_slope)
|
|
20
|
{
|
|
21
|
if (_obj.plattype == 0 && y < _obj.y)
|
|
22
|
_above = true;
|
|
23
|
if (_obj.plattype == 1)
|
|
24
|
_above = true;
|
|
25
|
}
|
|
26
|
if (_obj.quicksand && bbox_bottom < _obj.bbox_bottom)
|
|
27
|
_above = true;
|
|
28
|
if (_above)
|
|
29
|
{
|
|
30
|
if (_best == -4 || (_obj.y < _best.y && _obj.y >= bbox_bottom))
|
|
31
|
_best = _obj;
|
|
32
|
}
|
|
33
|
}
|
|
34
|
}
|
|
35
|
return _best;
|
|
36
|
}
|
|
37
|
|
|
38
|
function scr_ground_entity_checks(arg0, arg1)
|
|
39
|
{
|
|
40
|
if (!variable_instance_exists(id, "__platchecks_list") || !ds_exists(__platchecks_list, ds_type_list))
|
|
41
|
__platchecks_list = scr_ds_list_create_managed();
|
|
42
|
ds_list_clear(__platchecks_list);
|
|
43
|
var _num = instance_place_list(arg0, arg1, 691, __platchecks_list, false);
|
|
44
|
var _above = false;
|
|
45
|
var _floor_too_small = false;
|
|
46
|
if (_num > 0)
|
|
47
|
{
|
|
48
|
for (var i = 0; i < _num; i++)
|
|
49
|
{
|
|
50
|
var _obj = ds_list_find_value(__platchecks_list, i);
|
|
51
|
if ((bbox_bottom - ceil(abs(vspeed) + 2)) < (_obj.bbox_top + 2))
|
|
52
|
_above = true;
|
|
53
|
var _area;
|
|
54
|
with (_obj)
|
|
55
|
_area = abs(bbox_right - bbox_left) * abs(bbox_bottom - bbox_top);
|
|
56
|
var _myarea = abs(bbox_right - bbox_left) * abs(bbox_bottom - bbox_top);
|
|
57
|
if ((_area * 5) < _myarea)
|
|
58
|
_floor_too_small = true;
|
|
59
|
if (_above && !_floor_too_small && _obj.rideable)
|
|
60
|
return _obj;
|
|
61
|
}
|
|
62
|
}
|
|
63
|
return -4;
|
|
64
|
}
|