DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DayZPlayerCameraVehicles.c
См. документацию.
1// *************************************************************************************
2// ! DayZPlayerCamera1stPersonVehicle - first person in vehicle
3// *************************************************************************************
4class DayZPlayerCamera1stPersonVehicle extends DayZPlayerCamera1stPerson
5{
6 override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
7 {
8 super.OnUpdate(pDt, pOutResult);
9
10 pOutResult.m_fUseHeading = 0.0;
11 pOutResult.m_bUpdateEveryFrame = g_Game.IsPhysicsExtrapolationEnabled();
12 }
13}
14
15// *************************************************************************************
16// ! DayZPlayerCamera3rdPersonVehicle - 3rd person in vehicle (generic)
17// *************************************************************************************
19{
20 static const float CONST_UD_MIN = -85.0;
21 static const float CONST_UD_MAX = 85.0;
22 const float UP_ANGLE_CAP = 10; // max up angle, doesnt require gamecode sync
23
24 static const float CONST_LR_MIN = -160.0;
25 static const float CONST_LR_MAX = 160.0;
26
27 const float CONST_LINEAR_VELOCITY_STRENGTH = 0.025;
29
33
35 {
36 //Print("new camera: DayZPlayerCamera3rdPersonVehicle");
37
38 m_fDistance = 4.0;
39 m_CameraOffsetMS = "0.0 1.3 0.0";
40
41 HumanCommandVehicle vehicleCommand = pPlayer.GetCommand_Vehicle();
42 if ( vehicleCommand )
43 {
44 Transport transport = vehicleCommand.GetTransport();
45 if ( transport )
46 {
47 m_Transport = transport;
48 m_fDistance = transport.GetTransportCameraDistance();
49 m_CameraOffsetMS = transport.GetTransportCameraOffset();
50 }
51 }
52 }
53
54 override void OnActivate( DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult )
55 {
56 if (pPrevCamera)
57 {
58 vector baseAngles = pPrevCamera.GetBaseAngles();
59 m_fUpDownAngle = baseAngles[0];
60 m_fLeftRightAngle = baseAngles[1];
61
62 vector addAngles = pPrevCamera.GetAdditiveAngles();
63 m_fUpDownAngleAdd = addAngles[0];
64 m_fLeftRightAngleAdd = addAngles[1];
65 }
66
71
75
79
80 if (m_pPlayer)
81 {
82 vector rotDiffLS = m_pPlayer.GetOrientation() * Math.DEG2RAD;
83 m_LagOffsetOrientation[0] = rotDiffLS[0];
84 m_LagOffsetOrientation[1] = rotDiffLS[1];
85 m_LagOffsetOrientation[2] = rotDiffLS[2];
86 }
87 }
88
89 override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
90 {
92 vector playerTransformWS[4];
93 m_pPlayer.GetTransform(playerTransformWS);
94
96 IEntity vehicle = m_Transport;
97 pOutResult.m_CollisionIgnoreEntity = vehicle;
98
100 vector cameraPosition = vector.Zero;
101 if ( vehicle )
102 {
103 vector vehiclePositionWS = vehicle.GetOrigin();
104 vector vehiclePositionMS = vehiclePositionWS.InvMultiply4(playerTransformWS);
105 cameraPosition = vehiclePositionMS + m_CameraOffsetMS;
106 }
107
112
114 vector posDiffLS = vector.Zero;
115 vector rotDiffLS = vector.Zero;
116
117 vector rotWS = m_pPlayer.GetOrientation();
118 rotWS = rotWS * Math.DEG2RAD;
119 rotWS[2] = 0;
120
121 vector velocity = GetVelocity(vehicle);
122
123 if (vehicle)
124 {
125 vector posDiffWS = velocity * CONST_LINEAR_VELOCITY_STRENGTH;
126 posDiffLS = posDiffLS + posDiffWS.InvMultiply3(playerTransformWS);
127
129 rotDiffLS = rotDiffLS + rotDiffWS.InvMultiply3(playerTransformWS);
130
131 vector tempRot1 = rotDiffLS;
132 rotDiffLS[0] = tempRot1[1];
133 rotDiffLS[1] = tempRot1[2];
134 rotDiffLS[2] = tempRot1[0];
135
136 rotWS[0] = rotWS[0] + rotDiffLS[0];
137 rotWS[1] = rotWS[1] + rotDiffLS[1];
138 rotWS[2] = rotWS[2] + rotDiffLS[2];
139 }
140
142 m_LagOffsetPosition[0] = Math.SmoothCD(m_LagOffsetPosition[0], posDiffLS[0], m_fLagOffsetVelocityX, 0.3, 1000, pDt);
143 m_LagOffsetPosition[1] = Math.SmoothCD(m_LagOffsetPosition[1], posDiffLS[1], m_fLagOffsetVelocityY, 0.3, 1000, pDt);
144 m_LagOffsetPosition[2] = Math.SmoothCD(m_LagOffsetPosition[2], posDiffLS[2], m_fLagOffsetVelocityZ, 0.3, 1000, pDt);
145
149
152 if (vehicle)
153 {
154 vector rotTM[3];
155 Math3D.YawPitchRollMatrix(rot, rotTM);
156
157 Math3D.MatrixInvMultiply3(playerTransformWS, rotTM, rotTM);
158
159 // because we don't have m_fIgnoreParentYaw set
160 vector tempRot = Math3D.MatrixToAngles(rotTM);
161 rot[0] = tempRot[0];
162 }
163
164 rot[0] = rot[0] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_YAW_STRENGTH, Math.AbsFloat(rotDiffLS[0])) * CONST_ANGULAR_LAG_YAW_STRENGTH));
165 rot[1] = rot[1] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_PITCH_STRENGTH, Math.AbsFloat(rotDiffLS[1])) * CONST_ANGULAR_LAG_PITCH_STRENGTH));
166 rot[2] = rot[2] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_ROLL_STRENGTH, Math.AbsFloat(rotDiffLS[2])) * CONST_ANGULAR_LAG_ROLL_STRENGTH));
167
168 rot = GetCurrentOrientation() + rot;
169
170 float distance = m_fDistance;
171 distance -= (2 * Math.Clamp(Math.InverseLerp(UP_ANGLE_CAP * 0.5, CONST_UD_MAX, rot[1]), 0, 1));
172
173 if (rot[1] > UP_ANGLE_CAP)
174 {
175 rot[1] = UP_ANGLE_CAP;
176 }
177
178 Math3D.YawPitchRollMatrix(rot, pOutResult.m_CameraTM);
179
181 pOutResult.m_CameraTM[3] = cameraPosition - m_LagOffsetPosition;
182
184 pOutResult.m_fDistance = distance;
185 pOutResult.m_fUseHeading = 0.0;
186 pOutResult.m_fInsideCamera = 0.0;
187 pOutResult.m_fIgnoreParentRoll = 1.0;
188 pOutResult.m_fIgnoreParentPitch = 1.0;
189 pOutResult.m_fIgnoreParentYaw = 0.0;
190 pOutResult.m_bUpdateEveryFrame = g_Game.IsPhysicsExtrapolationEnabled();
191
192 StdFovUpdate(pDt, pOutResult);
193
194 super.OnUpdate(pDt, pOutResult);
195 }
196
198 {
199 vector a;
200 a[0] = m_fUpDownAngle;
201 a[1] = m_fLeftRightAngle;
202 a[2] = 0;
203 return a;
204 }
205
207 {
208 vector a;
209 a[0] = m_fUpDownAngleAdd;
211 a[2] = 0;
212 return a;
213 }
214
217 protected float m_fDistance;
218
220 protected float m_fUpDownAngle;
221 protected float m_fUpDownAngleAdd;
222 protected float m_fLeftRightAngle;
223 protected float m_fLeftRightAngleAdd;
224
228 protected float m_fLagOffsetVelocityX[1];
229 protected float m_fLagOffsetVelocityY[1];
230 protected float m_fLagOffsetVelocityZ[1];
231 protected float m_fLagOffsetVelocityYaw[1];
232 protected float m_fLagOffsetVelocityPitch[1];
233 protected float m_fLagOffsetVelocityRoll[1];
234
237}
238
240{
241 protected static const float CONST_UD_MIN = -60.0;
242 protected static const float CONST_UD_MAX = 80.0;
243 protected static const float UP_ANGLE_CAP = 10; // max up angle, doesnt require gamecode sync
244
245 protected static const float CONST_LR_MIN = -160.0;
246 protected static const float CONST_LR_MAX = 160.0;
247
248 protected const float CONST_LINEAR_VELOCITY_STRENGTH = 0.05;
249 protected const float CONST_ANGULAR_VELOCITY_STRENGTH = 0.005;
250
251 protected const float CONST_ANGULAR_LAG_YAW_STRENGTH = 4.0;
252 protected const float CONST_ANGULAR_LAG_PITCH_STRENGTH = 1.5;
253 protected const float CONST_ANGULAR_LAG_ROLL_STRENGTH = 0.5;
254
255
256 protected static const float CONST_YAW_LAG_REVERSE = 0.3;
257
258 protected static const float CONST_SPRING_SMOOTHTIME_YAW = 0.5; // how slowly cam follows turning (raise for more "springy" lag)
259 protected static const float CONST_SPRING_SMOOTHTIME_PITCH = 0.3;
260 protected static const float CONST_SPRING_SMOOTHTIME_ROLL = 0.3;
261
262 // optional: also expose position lag spring times
263 protected static const float CONST_SPRING_SMOOTHTIME_POS_X = 0.4;
264 protected static const float CONST_SPRING_SMOOTHTIME_POS_Y = 0.4;
265 protected static const float CONST_SPRING_SMOOTHTIME_POS_Z = 0.4;
266
268 {
269 m_fDistance = 3.0;
270 m_CameraOffsetMS = "0.0 1.8 0.0";
271
272 HumanCommandVehicle vehicleCommand = pPlayer.GetCommand_Vehicle();
273 if ( vehicleCommand )
274 {
275 Transport transport = vehicleCommand.GetTransport();
276 if ( transport )
277 {
278 m_Transport = transport;
279 m_fDistance = transport.GetTransportCameraDistance();
280 m_CameraOffsetMS = transport.GetTransportCameraOffset();
281 }
282 }
283 }
284
285 override void OnActivate( DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult )
286 {
287 if (pPrevCamera)
288 {
289 vector baseAngles = pPrevCamera.GetBaseAngles();
290 m_fUpDownAngle = baseAngles[0];
291 m_fLeftRightAngle = baseAngles[1];
292
293 vector addAngles = pPrevCamera.GetAdditiveAngles();
294 m_fUpDownAngleAdd = addAngles[0];
295 m_fLeftRightAngleAdd = addAngles[1];
296 }
297
302
306
310
311 if (m_pPlayer)
312 {
313 vector rotDiffLS = m_pPlayer.GetOrientation() * Math.DEG2RAD;
314 m_LagOffsetOrientation[0] = rotDiffLS[0];
315 m_LagOffsetOrientation[1] = rotDiffLS[1];
316 m_LagOffsetOrientation[2] = rotDiffLS[2];
317 }
318 }
319
320 override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
321 {
323 vector playerTransformWS[4];
324 m_pPlayer.GetTransform(playerTransformWS);
325
327 vector cameraPosition = vector.Zero;
328 if (m_Transport)
329 {
330 vector vehiclePositionWS = m_Transport.GetOrigin();
331 vector vehiclePositionMS = vehiclePositionWS.InvMultiply4(playerTransformWS);
332 cameraPosition = vehiclePositionMS + m_CameraOffsetMS;
333 }
334
339
341 vector posDiffLS = vector.Zero;
342 vector rotDiffLS = vector.Zero;
343
344 vector rotWS = m_pPlayer.GetOrientation();
345 rotWS = rotWS * Math.DEG2RAD;
346 rotWS[2] = 0;
347
348 vector velocity = GetVelocity(m_Transport);
349
350 if (m_Transport)
351 {
352 vector posDiffWS = velocity * CONST_LINEAR_VELOCITY_STRENGTH;
353 posDiffLS = posDiffLS + posDiffWS.InvMultiply3(playerTransformWS);
354
356 rotDiffLS = rotDiffLS + rotDiffWS.InvMultiply3(playerTransformWS);
357
358 vector tempRot1 = rotDiffLS;
359 rotDiffLS[0] = tempRot1[1];
360 rotDiffLS[1] = tempRot1[2];
361 rotDiffLS[2] = tempRot1[0];
362
363 rotWS[0] = rotWS[0] + rotDiffLS[0];
364 rotWS[1] = rotWS[1] + rotDiffLS[1];
365 rotWS[2] = rotWS[2] + rotDiffLS[2];
366 }
367
372
376
379 if (m_Transport)
380 {
381 vector rotTM[3];
382 Math3D.YawPitchRollMatrix(rot, rotTM);
383
384 Math3D.MatrixInvMultiply3(playerTransformWS, rotTM, rotTM);
385
386 vector tempRot = Math3D.MatrixToAngles(rotTM);
387 float lagYaw = tempRot[0];
388 if (lagYaw > 180.0)
389 lagYaw -= 360.0; // normalize to [-180,180]
390 rot[0] = -lagYaw * CONST_YAW_LAG_REVERSE; // reverse + dampen the yaw lag swing
391 }
392
393 rot[0] = rot[0] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_YAW_STRENGTH, Math.AbsFloat(rotDiffLS[0])) * CONST_ANGULAR_LAG_YAW_STRENGTH));
394 rot[1] = rot[1] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_PITCH_STRENGTH, Math.AbsFloat(rotDiffLS[1])) * CONST_ANGULAR_LAG_PITCH_STRENGTH));
395 rot[2] = rot[2] * (1.0 + (Math.InverseLerp(0.0, 1.0 + CONST_ANGULAR_LAG_ROLL_STRENGTH, Math.AbsFloat(rotDiffLS[2])) * CONST_ANGULAR_LAG_ROLL_STRENGTH));
396
397 rot = GetCurrentOrientation() + rot;
398
399 float distance = m_fDistance;
400 distance -= (2 * Math.Clamp(Math.InverseLerp(UP_ANGLE_CAP * 0.5, CONST_UD_MAX, rot[1]), 0, 1));
401
402 if (rot[1] > UP_ANGLE_CAP)
403 {
404 rot[1] = UP_ANGLE_CAP;
405 }
406
407 Math3D.YawPitchRollMatrix(rot, pOutResult.m_CameraTM);
408
410 pOutResult.m_CameraTM[3] = cameraPosition - m_LagOffsetPosition;
411
413 pOutResult.m_fDistance = distance;
414 pOutResult.m_fUseHeading = 0.0;
415 pOutResult.m_fInsideCamera = 0.0;
416 pOutResult.m_fIgnoreParentRoll = 1.0;
417 pOutResult.m_fIgnoreParentPitch = 1.0;
418 pOutResult.m_fIgnoreParentYaw = 0.0;
419 pOutResult.m_bUpdateEveryFrame = g_Game.IsPhysicsExtrapolationEnabled();
420
422 pOutResult.m_CollisionIgnoreEntity = m_Transport;
423 pOutResult.m_fPredictCollisionRadius = 1.0;
424
425 StdFovUpdate(pDt, pOutResult);
426
427 super.OnUpdate(pDt, pOutResult);
428 }
429
431 {
432 vector a;
433 a[0] = m_fUpDownAngle;
434 a[1] = m_fLeftRightAngle;
435 a[2] = 0;
436 return a;
437 }
438
440 {
441 vector a;
442 a[0] = m_fUpDownAngleAdd;
444 a[2] = 0;
445 return a;
446 }
447
450 protected float m_fDistance;
451
453 protected float m_fUpDownAngle;
454 protected float m_fUpDownAngleAdd;
455 protected float m_fLeftRightAngle;
456 protected float m_fLeftRightAngleAdd;
457
461 protected float m_fLagOffsetVelocityX[1];
462 protected float m_fLagOffsetVelocityY[1];
463 protected float m_fLagOffsetVelocityZ[1];
464 protected float m_fLagOffsetVelocityYaw[1];
465 protected float m_fLagOffsetVelocityPitch[1];
466 protected float m_fLagOffsetVelocityRoll[1];
467
470}
Transport m_Transport
Определения ActionVehicleHorn.c:49
DayZGame g_Game
Определения DayZGame.c:4074
float m_fLeftRightAngle
left right angle in rad (in freelook only)
Определения DayZPlayerCamera1stPerson.c:194
float m_fUpDownAngle
up down angle in rad
Определения DayZPlayerCamera1stPerson.c:192
static const float CONST_UD_MAX
up limit
Определения DayZPlayerCamera1stPerson.c:106
float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
Определения DayZPlayerCamera1stPerson.c:195
float m_fUpDownAngleAdd
up down angle in rad
Определения DayZPlayerCamera1stPerson.c:193
static const float CONST_LR_MIN
down limit
Определения DayZPlayerCamera1stPerson.c:108
static const float CONST_LR_MAX
up limit
Определения DayZPlayerCamera1stPerson.c:109
static const float CONST_UD_MIN
down limit
Определения DayZPlayerCamera1stPerson.c:105
vector m_CameraOffsetMS
model space offset
Определения DayZPlayerCamera3rdPerson.c:301
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
Определения DayZPlayerCamera_Base.c:212
float m_CurrentCameraYaw
Определения DayZPlayerCamera_Base.c:760
float m_CurrentCameraPitch
Определения DayZPlayerCamera_Base.c:761
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
Определения DayZPlayerCamera_Base.c:150
void StdFovUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
Определения DayZPlayerCamera_Base.c:337
float m_CurrentCameraRoll
Определения DayZPlayerCamera_Base.c:762
vector m_LagOffsetOrientation
Определения DayZPlayerCameraVehicles.c:227
void DayZPlayerCamera3rdPersonVehicle(DayZPlayer pPlayer, HumanInputController pInput)
Определения DayZPlayerCameraVehicles.c:34
const float CONST_ANGULAR_LAG_ROLL_STRENGTH
Определения DayZPlayerCameraVehicles.c:32
const float CONST_ANGULAR_VELOCITY_STRENGTH
Определения DayZPlayerCameraVehicles.c:28
float m_fLagOffsetVelocityYaw[1]
Определения DayZPlayerCameraVehicles.c:231
const float UP_ANGLE_CAP
Определения DayZPlayerCameraVehicles.c:22
const float CONST_ANGULAR_LAG_PITCH_STRENGTH
Определения DayZPlayerCameraVehicles.c:31
vector m_LagOffsetPosition
lag offsets
Определения DayZPlayerCameraVehicles.c:226
float m_fLagOffsetVelocityPitch[1]
Определения DayZPlayerCameraVehicles.c:232
float m_fLagOffsetVelocityY[1]
Определения DayZPlayerCameraVehicles.c:229
float m_fLagOffsetVelocityRoll[1]
Определения DayZPlayerCameraVehicles.c:233
float m_fLagOffsetVelocityX[1]
Определения DayZPlayerCameraVehicles.c:228
const float CONST_ANGULAR_LAG_YAW_STRENGTH
Определения DayZPlayerCameraVehicles.c:30
float m_fLagOffsetVelocityZ[1]
Определения DayZPlayerCameraVehicles.c:230
const float CONST_LINEAR_VELOCITY_STRENGTH
Определения DayZPlayerCameraVehicles.c:27
void OnActivate()
Определения Trap_LandMine.c:67
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
Определения DayZPlayerCameraVehicles.c:6
static const float CONST_YAW_LAG_REVERSE
Определения DayZPlayerCameraVehicles.c:256
static const float CONST_UD_MIN
down limit
Определения DayZPlayerCameraVehicles.c:241
float m_fUpDownAngleAdd
up down angle in rad
Определения DayZPlayerCameraVehicles.c:454
float m_fLeftRightAngle
left right angle in rad
Определения DayZPlayerCameraVehicles.c:455
void DayZPlayerCamera3rdPersonVehicleMotorbike(DayZPlayer pPlayer, HumanInputController pInput)
Определения DayZPlayerCameraVehicles.c:267
static const float CONST_LR_MIN
down limit
Определения DayZPlayerCameraVehicles.c:245
static const float CONST_SPRING_SMOOTHTIME_YAW
Определения DayZPlayerCameraVehicles.c:258
override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
Определения DayZPlayerCameraVehicles.c:285
float m_fDistance
distance from start
Определения DayZPlayerCameraVehicles.c:450
static const float CONST_SPRING_SMOOTHTIME_PITCH
Определения DayZPlayerCameraVehicles.c:259
static const float CONST_SPRING_SMOOTHTIME_POS_Y
Определения DayZPlayerCameraVehicles.c:264
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
Определения DayZPlayerCameraVehicles.c:320
static const float CONST_UD_MAX
up limit
Определения DayZPlayerCameraVehicles.c:242
static const float CONST_SPRING_SMOOTHTIME_ROLL
Определения DayZPlayerCameraVehicles.c:260
static const float CONST_LR_MAX
up limit
Определения DayZPlayerCameraVehicles.c:246
static const float CONST_SPRING_SMOOTHTIME_POS_Z
Определения DayZPlayerCameraVehicles.c:265
vector m_CameraOffsetMS
runtime config
Определения DayZPlayerCameraVehicles.c:449
float m_fLeftRightAngleAdd
left right angle in rad
Определения DayZPlayerCameraVehicles.c:456
static const float CONST_SPRING_SMOOTHTIME_POS_X
Определения DayZPlayerCameraVehicles.c:263
override vector GetAdditiveAngles()
Определения DayZPlayerCamera1stPerson.c:76
override vector GetBaseAngles()
Определения DayZPlayerCamera1stPerson.c:67
this is main camera class
Определения DayZPlayerCamera1stPerson.c:5
Определения DayZPlayerImplement.c:87
proto native Transport GetTransport()
Определения human.c:712
Определения human.c:18
Определения EnEntity.c:165
Определения EnMath3D.c:28
Определения EnMath.c:7
Native class for boats - handles physics simulation.
Определения Boat.c:29
proto vector InvMultiply4(vector mat[4])
Invert-transforms position.
static const vector Zero
Определения EnConvert.c:123
proto vector InvMultiply3(vector mat[3])
Invert-transforms vector.
Определения EnConvert.c:119
float m_fDistance
camera distance (external cameras only)
Определения dayzplayer.c:63
DayZPlayer m_pPlayer
data
Определения dayzplayer.c:135
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
Определения dayzplayer.c:56
vector GetCurrentOrientation()
Определения dayzplayer.c:112
proto native external vector GetOrigin()
Returns origin of Entity.
static proto vector MatrixToAngles(vector mat[3])
Returns angles of rotation matrix.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto void MatrixInvMultiply3(vector mat0[3], vector mat1[3], out vector res[3])
Invert-transforms rotation matrix.
static float SmoothCDPI2PI(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Определения EnMath.c:680
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static const float RAD2DEG
Определения EnMath.c:16
static const float DEG2RAD
Определения EnMath.c:17
static proto float AbsFloat(float f)
Returns absolute value.
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.
proto vector dBodyGetAngularVelocity(notnull IEntity body)
Gets angular velocity for a rigidbody.
proto native void OnUpdate()
Определения 3_Game/DayZ/tools/tools.c:349