DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ HandleOrientation()

void DayZInfected::HandleOrientation ( float pDt,
int pCurrentCommandID )
inlineprotected

HandleOrientation

См. определение в файле ZombieBase.c строка 314

315 {
316 m_OrientationTimer += pDt;
317
318 int yaw = Math.Round(GetOrientation()[0]);
319 yaw = Math.NormalizeAngle(yaw);
320
321 //atan2(sin(x-y), cos(x-y))
322 float angleSourceRad = m_OrientationSynced * Math.DEG2RAD;
323 float angleTargetRad = yaw * Math.DEG2RAD;
324
325 float angleDiffRad = Math.Atan2(Math.Sin(angleTargetRad - angleSourceRad), Math.Cos(angleSourceRad - angleTargetRad));
326 angleDiffRad *= Math.RAD2DEG;
327 angleDiffRad = Math.Round(angleDiffRad);
328
329 if (m_OrientationTimer >= 2.0 || m_OrientationSynced == -1 || Math.AbsInt(angleDiffRad) > ORIENTATION_SYNC_THRESHOLD)
330 {
331 m_OrientationTimer = 0.0;
332
333 if (m_OrientationSynced == -1 || Math.AbsInt(angleDiffRad) > 5)
334 {
336 SetSynchDirty();
337 }
338 }
339 }
vector GetOrientation()
Определения AreaDamageManager.c:306
const float ORIENTATION_SYNC_THRESHOLD
Определения ZombieBase.c:5
int m_OrientationSynced
Определения ZombieBase.c:19
float m_OrientationTimer
Определения ZombieBase.c:20

Перекрестные ссылки Math::AbsInt(), Math::Atan2(), Math::Cos(), Math::DEG2RAD, GetOrientation(), m_OrientationSynced, m_OrientationTimer, Math::NormalizeAngle(), ORIENTATION_SYNC_THRESHOLD, Math::RAD2DEG, Math::Round() и Math::Sin().

Используется в CommandHandler().