From Savage Game Design Wiki
Jump to navigation
Jump to search
Description
/*
Author: Wyqer, veteran29
Date: 2019-10-15
Last Update: 2020-10-24
Public: Yes
Description:
Toggle caching of editor layer.
Parameter(s):
_layer - Layer name [STRING, defaults to ""]
_cached - Caching state [BOOL, defaults to true]
Returns:
Function reached the end [BOOL]
Example(s):
["myEditorLayer", false] call vn_ms_fnc_cacheLayer
*/
params [
["_layer", "", [""]],
["_cached", true, [false]]
];
#ifdef VN_DEBUG
systemChat format ["[Layer] %1, %2", _layer, _cached];
#endif
private _layerData = (getMissionLayerEntities _layer) param [0, []];
if (_layerData isEqualTo []) exitWith {
["Layer '%1' does not contain units, can not (un)cache!", _layer] call BIS_fnc_error;
false
};
{
_x enableSimulationGlobal !_cached;
_x hideObjectGlobal _cached;
if (_cached) then {
_x setVariable ["vn_cache_damageAllowed", isDamageAllowed _x, true];
_x allowDamage false;
} else {
_x allowDamage (_x getVariable ["vn_cache_damageAllowed", true]);
_x setVariable ["vn_cache_damageAllowed", nil, true];
};
} forEach _layerData;
private _groups = _layerData apply {group _x};
_groups = _groups arrayIntersect _groups;
{
// handle dynamic simulation for groups
if (_cached && {isNil {_x getVariable "vn_cache_dynSim"}}) then {
_x setVariable ["vn_cache_dynSim", dynamicSimulationEnabled _x];
_x enableDynamicSimulation false;
} else {
if (!_cached) then {
_x enableDynamicSimulation (_x getVariable ["vn_cache_dynSim", false]);
_x setVariable ["vn_cache_dynSim", nil];
};
};
} forEach _groups;
true
(Placeholder description extracted from the function header by LM_exportFunctionsToWiki.sqf)
Syntax
- Syntax
- [] call vn_ms_fnc_cacheLayer;
- Return value
- Nothing
Examples
- Example 1
-