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

◆ RotateOrient()

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

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

68 {
69 float aDiff = pModel.m_fHeadingAngle - pModel.m_fOrientationAngle;
70
71 while (aDiff < -Math.PI)
72 {
73 aDiff += Math.PI2;
74 }
75 while (aDiff > Math.PI)
76 {
77 aDiff -= Math.PI2;
78 }
79
80 // Print("Heading model: or: " + pModel.m_fOrientationAngle.ToString() + " head:" + pModel.m_fHeadingAngle.ToString() + " dif:" + aDiff.ToString());
81
82 if (pLastHeadingDiff < -Math.PI_HALF && aDiff > 0)
83 {
84 aDiff -= Math.PI2;
85 }
86 else if (pLastHeadingDiff > Math.PI_HALF && aDiff < 0)
87 {
88 aDiff += Math.PI2;
89 }
90
91 pLastHeadingDiff = aDiff;
92 if (aDiff < -CONST_ROTLIMIT)
93 {
94 // character is somehow stucked (happens in prone stance)
95 if (aDiff < -(Math.PI_HALF + CONST_ROTLIMIT))
96 {
97 pLastHeadingDiff = 0;
98 return false;
99 }
100
101 pModel.m_fOrientationAngle += aDiff + CONST_ROTLIMIT;
102 return true;
103 }
104 else if (aDiff > CONST_ROTLIMIT)
105 {
106 // character is somehow stucked (happens in prone stance)
107 if (aDiff > (Math.PI_HALF + CONST_ROTLIMIT))
108 {
109 pLastHeadingDiff = 0;
110 return false;
111 }
112
113 pModel.m_fOrientationAngle += aDiff - CONST_ROTLIMIT;
114 return true;
115 }
116
117 // Print("Heading model diff " + aDiff.ToString());
118 return false;
119
120 }
static float CONST_ROTLIMIT
Определения DayZPlayerImplementHeading.c:64

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

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