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

◆ ClampHeading()

static bool DayZPlayerImplementHeading::ClampHeading ( float pDt,
SDayZPlayerHeadingModel pModel,
out float pLastHeadingDiff )
inlinestaticprivate

This HeadingModel - Clamps heading

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

20 {
21 float aDiff = pModel.m_fHeadingAngle - pModel.m_fOrientationAngle;
22 if (aDiff < -Math.PI)
23 {
24 aDiff += Math.PI2;
25 }
26 else if (aDiff > Math.PI)
27 {
28 aDiff -= Math.PI2;
29 }
30
31 // Print("Heading model: or: " + pModel.m_fOrientationAngle.ToString() + " head:" + pModel.m_fHeadingAngle.ToString() + " dif:" + aDiff.ToString());
32
33 if (pLastHeadingDiff < -Math.PI_HALF && aDiff > 0)
34 {
35 aDiff = -Math.PI + 0.01;
36 pLastHeadingDiff = aDiff;
37 pModel.m_fHeadingAngle = pModel.m_fOrientationAngle + aDiff;
38
39 // Print("-APA- : or: " + pModel.m_fOrientationAngle.ToString() + " head:" + pModel.m_fHeadingAngle.ToString() + " dif:" + aDiff.ToString());
40
41 return true; // modify heading
42 }
43 else if (pLastHeadingDiff > Math.PI_HALF && aDiff < 0)
44 {
45 aDiff = Math.PI - 0.01;
46 pLastHeadingDiff = aDiff;
47 pModel.m_fHeadingAngle = pModel.m_fOrientationAngle + aDiff;
48
49 // Print("-APA- : or: " + pModel.m_fOrientationAngle.ToString() + " head:" + pModel.m_fHeadingAngle.ToString() + " dif:" + aDiff.ToString());
50
51 return true; // modify heading
52 }
53
54 pLastHeadingDiff = aDiff;
55 // Print("Heading model diff " + aDiff.ToString());
56 return false;
57 }

Перекрестные ссылки Math::PI, Math::PI2, Math::PI_HALF и SDayZPlayerHeadingModel().

Используется в DayZPlayer::HeadingModel() и ManBase::HeadingModel().