mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
compensate for FPS lag.
This commit is contained in:
parent
c89df1b04f
commit
97230c2252
@ -45,6 +45,7 @@ TRACE_4("Beginning ACE guidance system",_target,_ammo,_seekerType,_attackProfile
|
|||||||
getNumber ( _config >> "seekerAngle" ),
|
getNumber ( _config >> "seekerAngle" ),
|
||||||
getNumber ( _config >> "seekerAccuracy" ),
|
getNumber ( _config >> "seekerAccuracy" ),
|
||||||
getNumber ( _config >> "seekerMaxRange" )
|
getNumber ( _config >> "seekerMaxRange" )
|
||||||
]
|
],
|
||||||
|
[ diag_tickTime ]
|
||||||
]
|
]
|
||||||
] call cba_fnc_addPerFrameHandler;
|
] call cba_fnc_addPerFrameHandler;
|
||||||
|
@ -10,6 +10,11 @@ _targetLaunchParams = _launchParams select 1;
|
|||||||
_flightParams = _args select 2;
|
_flightParams = _args select 2;
|
||||||
_seekerParams = _args select 3;
|
_seekerParams = _args select 3;
|
||||||
|
|
||||||
|
_stateParams = _args select 4;
|
||||||
|
|
||||||
|
_lastRunTime = _stateParams select 0;
|
||||||
|
_runtimeDelta = diag_tickTime - _lastRunTime;
|
||||||
|
|
||||||
_config = configFile >> "CfgAmmo" >> _ammo >> "ACE_MissileGuidance";
|
_config = configFile >> "CfgAmmo" >> _ammo >> "ACE_MissileGuidance";
|
||||||
|
|
||||||
if(!alive _projectile || isNull _projectile || isNull _shooter) exitWith {
|
if(!alive _projectile || isNull _projectile || isNull _shooter) exitWith {
|
||||||
@ -60,7 +65,10 @@ if(!isNil "_seekerTargetPos") then {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(accTime > 0) then {
|
if(accTime > 0) then {
|
||||||
_outVector = [_projectile, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace);
|
_adjustTime = 1/accTime;
|
||||||
|
_adjustTime = _adjustTime * (.01/_runtimeDelta);
|
||||||
|
|
||||||
|
_outVector = [_projectile, [_xVec, _yVec, _zVec], [_yaw, _adjustTime, _pitch]] call FUNC(translateToModelSpace);
|
||||||
_vectorTo = _projectilePos vectorFromTo _outVector;
|
_vectorTo = _projectilePos vectorFromTo _outVector;
|
||||||
|
|
||||||
_projectile setVectorDirAndUp [_vectorTo, vectorUp _projectile];
|
_projectile setVectorDirAndUp [_vectorTo, vectorUp _projectile];
|
||||||
@ -70,3 +78,8 @@ if(!isNil "_seekerTargetPos") then {
|
|||||||
hintSilent format["d: %1", _distanceToTarget];
|
hintSilent format["d: %1", _distanceToTarget];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_stateParams set[0, [diag_tickTime]];
|
||||||
|
|
||||||
|
_args set[4, _stateParams];
|
||||||
|
_this set[0, _args];
|
Loading…
Reference in New Issue
Block a user