Make explosion reflections optional, default off

This commit is contained in:
esteldunedain 2016-02-06 23:46:40 -03:00
parent d69af47030
commit 2b1c312d13
4 changed files with 20 additions and 2 deletions

View File

@ -11,6 +11,12 @@ class ACE_Settings {
typeName = "BOOL"; typeName = "BOOL";
value = 0; value = 0;
}; };
class GVAR(ReflectionsEnabled) {
displayName = CSTRING(EnableReflections);
description = CSTRING(EnableReflections_Desc);
typeName = "BOOL";
value = 0;
};
class GVAR(maxTrack) { class GVAR(maxTrack) {
displayName = CSTRING(MaxTrack); displayName = CSTRING(MaxTrack);
description = CSTRING(MaxTrack_Desc); description = CSTRING(MaxTrack_Desc);

View File

@ -3,6 +3,7 @@
private ["_split", "_radi", "_params", "_pos", "_explosiveInfo", "_los", "_nlos", "_zIndex", "_depth", "_indirectHitRange", "_indirectHit", "_distanceCount", "_lastPos", "_test", "_vec", "_testPos", "_buckets", "_excludes", "_bucketIndex", "_bucketPos", "_bucketList", "_c", "_index", "_blist", "_avgX", "_avgY", "_avgZ", "_bpos", "_distance", "_hitFactor", "_hit", "_range", "_refExp", "_rand", "_i", "_x", "_res", "_forEachIndex", "_explosions", "_can", "_dirvec", "_zAng"]; private ["_split", "_radi", "_params", "_pos", "_explosiveInfo", "_los", "_nlos", "_zIndex", "_depth", "_indirectHitRange", "_indirectHit", "_distanceCount", "_lastPos", "_test", "_vec", "_testPos", "_buckets", "_excludes", "_bucketIndex", "_bucketPos", "_bucketList", "_c", "_index", "_blist", "_avgX", "_avgY", "_avgZ", "_bpos", "_distance", "_hitFactor", "_hit", "_range", "_refExp", "_rand", "_i", "_x", "_res", "_forEachIndex", "_explosions", "_can", "_dirvec", "_zAng"];
BEGIN_COUNTER(fnc_findReflections);
_params = _this select 0; _params = _this select 0;
_pos = _params select 0; _pos = _params select 0;
_explosiveInfo = _params select 1; _explosiveInfo = _params select 1;
@ -124,3 +125,4 @@ if(_zIndex < 5) then {
[DFUNC(doExplosions), 0, [_explosions, 0]] call CBA_fnc_addPerFrameHandler; [DFUNC(doExplosions), 0, [_explosions, 0]] call CBA_fnc_addPerFrameHandler;
[(_this select 1)] call CBA_fnc_removePerFrameHandler; [(_this select 1)] call CBA_fnc_removePerFrameHandler;
}; };
END_COUNTER(fnc_findReflections);

View File

@ -8,6 +8,7 @@
if(!isServer) exitWith { }; if(!isServer) exitWith { };
BEGIN_COUNTER(frago);
// _startTime = ACE_diagTime; // _startTime = ACE_diagTime;
private ["_startTime", "_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_boundingBox", "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", "_currentCount", "_count", "_vecVar", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_sectorSize", "_sectorOffset", "_i", "_randomDir", "_endTime", "_target"]; private ["_startTime", "_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_boundingBox", "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", "_currentCount", "_count", "_vecVar", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_sectorSize", "_sectorOffset", "_i", "_randomDir", "_endTime", "_target"];
@ -108,7 +109,9 @@ _fragArcs set[360, 0];
#endif #endif
_doRandom = true; _doRandom = true;
if(_isArmed && (count _objects) > 0) then { if(_isArmed && (count _objects) > 0) then {
if (GVAR(ReflectionsEnabled)) then {
[_lastPos, _shellType] call FUNC(doReflections); [_lastPos, _shellType] call FUNC(doReflections);
};
{ {
//if(random(1) > 0.5) then { //if(random(1) > 0.5) then {
_target = _x; _target = _x;
@ -212,3 +215,4 @@ if(_isArmed && (count _objects) > 0) then {
// ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))]; // ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))];
// #endif // #endif
// _endTime = ACE_diagTime; // _endTime = ACE_diagTime;
END_COUNTER(frago);

View File

@ -45,6 +45,12 @@
<Hungarian>Az ACE pattogzás-szimuláció engedélyezése</Hungarian> <Hungarian>Az ACE pattogzás-szimuláció engedélyezése</Hungarian>
<Russian>Включить симуляцию обломков ACE</Russian> <Russian>Включить симуляцию обломков ACE</Russian>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableReflections">
<English>Explosion Reflections Simulation</English>
</Key>
<Key ID="STR_ACE_Frag_EnableReflections_Desc">
<English>Enable the ACE Explosion Reflection Simulation</English>
</Key>
<Key ID="STR_ACE_Frag_MaxTrack"> <Key ID="STR_ACE_Frag_MaxTrack">
<English>Maximum Projectiles Tracked</English> <English>Maximum Projectiles Tracked</English>
<Spanish>Máximos proyectiles rastreados</Spanish> <Spanish>Máximos proyectiles rastreados</Spanish>