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

◆ FlareParticleUpdate()

void FlareSimulation::FlareParticleUpdate ( )
inlineprotected

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

90 {
92 if (m_RotationDegrees > 360)
94
95 float angleRad = m_RotationDegrees * Math.DEG2RAD;
96 float sin = Math.Sin(angleRad);
97 float cos = Math.Cos(angleRad);
98
99 vector newFlarePos = m_ParMainFire.GetOrigin();
100 float surfacePos = GetGame().SurfaceY(newFlarePos[0], newFlarePos[2]);
101
102 if (newFlarePos[1] - surfacePos < 1) // reached ground
103 {
104 if (m_Flare.GetOrigin()[1] <= surfacePos) // actual flare pos might not match and height could be underground
105 m_ParMainFire.SetPosition(Vector(newFlarePos[0], surfacePos, newFlarePos[2]));
106 else
107 m_ParMainFire.SetPosition(Vector(newFlarePos[0], m_Flare.GetOrigin()[1] ,newFlarePos[2]));
108
109 return;
110 }
111
112 // rotate vector around point
113 float xRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * cos) - ((m_FlarePosition[2] - m_RotationPoint[2]) * sin) + m_RotationPoint[0];
114 float yRotated = ((m_FlarePosition[0] - m_RotationPoint[0]) * sin) + ((m_FlarePosition[2] - m_RotationPoint[2]) * cos) + m_RotationPoint[2];
115
116 newFlarePos[0] = xRotated;
117 newFlarePos[1] = m_Flare.GetOrigin()[1];
118 newFlarePos[2] = yRotated;
119
120 m_ParMainFire.SetPosition(newFlarePos);
121
122 }
proto native float SurfaceY(float x, float z)
Entity m_Flare
Определения FlareSimulation.c:17
Particle m_ParMainFire
Определения FlareSimulation.c:3
const float FLARE_SPIN_RATE
Определения FlareSimulation.c:15
vector m_FlarePosition
Определения FlareSimulation.c:19
vector m_RotationPoint
Определения FlareSimulation.c:18
float m_RotationDegrees
Определения FlareSimulation.c:20
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.

Перекрестные ссылки Math::Cos(), Math::DEG2RAD, FLARE_SPIN_RATE, GetGame(), m_Flare, m_FlarePosition, m_ParMainFire, m_RotationDegrees, m_RotationPoint, Math::Sin(), CGame::SurfaceY() и Vector().

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