Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс HitDirectionEffectBase

Защищенные статические члены

static void CheckValues ()
 range 0..180, randomized offset of direction to make it less acurate
 
static GetCurrentType ()
 

Статические защищенные данные

 m_Type
 
static float m_DurationMax
 
static float m_BreakPointBase
 
static float m_DistanceAdjust
 range 0..1, a point where the fading starts
 
static int m_RotationOverride
 
static float m_Scatter
 

Закрытые члены

override HitDirectionImagesBase GetImageData ()
 
override void FinalizePositionCalculation ()
 
override void SetIndicatorRotation (float timeslice=-1.0)
 
void HitDirectionEffectBase ()
 
void Init (DayZPlayer player, float hit_direction, float intensity_max)
 Called manually after object spawn.
 
HitDirectionImagesBase GetImageData ()
 
void ~HitDirectionEffectBase ()
 
bool DurationCheck ()
 
void Update (float timeslice)
 
void CalculateArrowPosition (float timeslice=-1.0)
 
void FinalizePositionCalculation ()
 specific handling on individual indicator type
 
void SetIndicatorRotation (float timeslice=-1.0)
 
void SetIndicatorPositon (float timeslice=-1.0)
 
override HitDirectionImagesBase GetImageData ()
 
override void FinalizePositionCalculation ()
 
override void SetIndicatorRotation (float timeslice=-1.0)
 
override HitDirectionImagesBase GetImageData ()
 
override void FinalizePositionCalculation ()
 
override void SetIndicatorRotation (float timeslice=-1.0)
 

Закрытые данные

const float DURATION_COEF_MIN = 0.6
 
const float INTENSITY_MIN = 0.6
 
float m_HitDirection
 
float m_Duration
 
float m_BreakPoint
 
float m_TimeActive
 
float m_IntensityMax
 
Widget m_LayoutRoot
 
Widget m_Image
 
DayZPlayer m_Player
 
bool m_Initialized
 
int m_SizeXEnf
 
int m_SizeYEnf
 
float m_PosX
 
float m_PosY
 
float m_PosXScreenEdge
 
float m_PosYScreenEdge
 
float m_AngleRad
 
float m_AngleRadPrev
 
float m_SmoothVel [1]
 
ref HitDirectionImagesBase m_ImageData
 

Закрытые статические данные

static bool m_ServerOverrideEnabled
 
static int m_Mode
 
static int m_ID
 
static int m_Color
 

Подробное описание

Конструктор(ы)

◆ HitDirectionEffectBase()

void HitDirectionEffectBase ( )
inlineprivate
33 {
34 m_Initialized = false;
35 m_PosX = 0.0;
36 m_PosY = 0.0;
37 m_AngleRad = 0.0;
38 m_SmoothVel[0] = 0.0;
39
41 m_ImageData.GetCurrentImageData(m_LayoutRoot,m_Image);
42 }
override HitDirectionImagesBase GetImageData()
Definition HitDirectionArrow.c:4
float m_PosY
Definition HitDirectionBase.c:23
float m_AngleRad
Definition HitDirectionBase.c:26
ref HitDirectionImagesBase m_ImageData
Definition HitDirectionBase.c:30
float m_SmoothVel[1]
Definition HitDirectionBase.c:28
bool m_Initialized
Definition HitDirectionBase.c:19
Widget m_LayoutRoot
Definition HitDirectionBase.c:14
Widget m_Image
Definition HitDirectionBase.c:15
float m_PosX
Definition HitDirectionBase.c:22

Перекрестные ссылки GetImageData(), m_AngleRad, m_Image, m_ImageData, m_Initialized, m_LayoutRoot, m_PosX, m_PosY и m_SmoothVel.

◆ ~HitDirectionEffectBase()

void ~HitDirectionEffectBase ( )
inlineprivate
76 {
77 m_LayoutRoot.Show(false);
78 delete m_LayoutRoot;
79 }

Перекрестные ссылки m_LayoutRoot.

Методы

◆ CalculateArrowPosition()

void CalculateArrowPosition ( float timeslice = -1.0)
inlineprivate
124 {
126
127 float angle_direction = m_Player.GetOrientation()[0];
129 float camera_angle = GetGame().GetCurrentCameraDirection().VectorToAngles()[0];
131
136
137 m_PosX = 0.0;
138 m_PosY = 0.0;
139
141
142 if ( m_Initialized && timeslice != -1.0 )
143 {
144 float val = m_AngleRadPrev - m_AngleRad + Math.PI;
146 val -= Math.PI;
148 }
150
153
155 }
override void FinalizePositionCalculation()
Definition HitDirectionArrow.c:11
int m_SizeXEnf
Definition HitDirectionBase.c:20
DayZPlayer m_Player
Definition HitDirectionBase.c:17
float m_PosXScreenEdge
Definition HitDirectionBase.c:24
float m_HitDirection
Definition HitDirectionBase.c:8
int m_SizeYEnf
Definition HitDirectionBase.c:21
static float m_DistanceAdjust
range 0..1, a point where the fading starts
Definition HitDirectionBase.c:176
float m_AngleRadPrev
Definition HitDirectionBase.c:27
float m_PosYScreenEdge
Definition HitDirectionBase.c:25
Definition EnMath.c:7
Definition EntityAI.c:95
proto native CGame GetGame()
static proto float Cos(float angle)
Returns cosinus of angle in radians.
static proto float ModFloat(float x, float y)
Returns the floating-point remainder of x/y rounded towards zero.
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 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.
static const float PI
Definition EnMath.c:12
static const float PI2
Definition EnMath.c:13
static proto float NormalizeAngle(float ang)
Normalizes the angle (0...360)
static const float DEG2RAD
Definition EnMath.c:17
static proto float Sin(float angle)
Returns sinus of angle in radians.
proto void GetScreenSize(out int x, out int y)

Перекрестные ссылки Math::Clamp(), Math::Cos(), Math::DEG2RAD, FinalizePositionCalculation(), GetGame(), GetScreenSize(), m_AngleRad, m_AngleRadPrev, m_DistanceAdjust, m_HitDirection, m_Initialized, m_Player, m_PosX, m_PosXScreenEdge, m_PosY, m_PosYScreenEdge, m_SizeXEnf, m_SizeYEnf, m_SmoothVel, Math::ModFloat(), Math::NormalizeAngle(), Math::PI, Math::PI2, Math::Sin() и Math::SmoothCD().

Используется в Init() и Update().

◆ CheckValues()

static void CheckValues ( )
inlinestaticprotected

range 0..180, randomized offset of direction to make it less acurate

sets override values, or defaults

182 {
185 {
192 }
193 else
194 {
195 m_Mode = HitDirectionModes.STATIC;
196 m_ID = HitIndicatorType.SPLASH;
197 m_Color = HitDirectionConstants.COLOR_DEFAULT;
198 m_DurationMax = HitDirectionConstants.DURATION_BASE;
199 m_BreakPointBase = HitDirectionConstants.BREAKPOINT_BASE;
201 }
202 m_DistanceAdjust = HitDirectionConstants.DISTANCE_ADJUST;
203 m_RotationOverride = HitDirectionConstants.ROTATION_DEFAULT;
204 }
Definition CfgGameplayHandler.c:2
static int GetHitIndicationTypeID()
Definition CfgGameplayHandler.c:347
static int GetHitIndicationMode()
Definition CfgGameplayHandler.c:342
static float GetHitIndicationScatter()
Definition CfgGameplayHandler.c:367
static float GetHitIndicationMaxDuration()
Definition CfgGameplayHandler.c:357
static bool GetHitIndicationOverrideEnabled()
Definition CfgGameplayHandler.c:337
static int GetHitIndicationIndicatorColor()
Definition CfgGameplayHandler.c:352
static float GetHitIndicationBreakPoint()
Definition CfgGameplayHandler.c:362
static int m_Mode
Definition HitDirectionBase.c:170
static bool m_ServerOverrideEnabled
Definition HitDirectionBase.c:169
static float m_BreakPointBase
Definition HitDirectionBase.c:175
static float m_DurationMax
Definition HitDirectionBase.c:174
static int m_RotationOverride
Definition HitDirectionBase.c:177
static float m_Scatter
Definition HitDirectionBase.c:178
static int m_Color
Definition HitDirectionBase.c:172
static int m_ID
Definition HitDirectionBase.c:171
HitDirectionModes
Definition constants.c:98

Перекрестные ссылки CfgGameplayHandler::GetHitIndicationBreakPoint(), CfgGameplayHandler::GetHitIndicationIndicatorColor(), CfgGameplayHandler::GetHitIndicationMaxDuration(), CfgGameplayHandler::GetHitIndicationMode(), CfgGameplayHandler::GetHitIndicationOverrideEnabled(), CfgGameplayHandler::GetHitIndicationScatter(), CfgGameplayHandler::GetHitIndicationTypeID(), m_BreakPointBase, m_Color, m_DistanceAdjust, m_DurationMax, m_ID, m_Mode, m_RotationOverride, m_Scatter и m_ServerOverrideEnabled.

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

◆ DurationCheck()

bool DurationCheck ( )
inlineprivate
82 {
83 if ( m_TimeActive >= m_Duration )
84 {
85 return true;
86 }
87 return false;
88 }
float m_TimeActive
Definition HitDirectionBase.c:11
float m_Duration
Definition HitDirectionBase.c:9

Перекрестные ссылки m_Duration и m_TimeActive.

◆ FinalizePositionCalculation() [1/4]

override void FinalizePositionCalculation ( )
inlineprivate
12 {
13 //blobs move around the edges, the rest on elypsis
18 }

Перекрестные ссылки Math::Cos() и Math::Sin().

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

◆ FinalizePositionCalculation() [2/4]

void FinalizePositionCalculation ( )
inlineprivate

specific handling on individual indicator type

158{}

◆ FinalizePositionCalculation() [3/4]

override void FinalizePositionCalculation ( )
inlineprivate
12 {
13 //blobs move around the edges, the rest on elypsis
18 }

Перекрестные ссылки Math::Cos() и Math::Sin().

◆ FinalizePositionCalculation() [4/4]

override void FinalizePositionCalculation ( )
inlineprivate
12 {
13 //blobs move around the edges, the rest on elypsis
16 }

◆ GetCurrentType()

static GetCurrentType ( )
inlinestaticprotected
207 {
208 switch (m_ID)
209 {
210 case HitIndicatorType.SPLASH:
212 break;
213
214 case HitIndicatorType.SPIKE:
216 break;
217
218 case HitIndicatorType.ARROW:
220 break;
221
222 default:
223 ErrorEx("Unknown HitDirection mode, using HitIndicatorType.SPLASH",ErrorExSeverity.INFO);
225 break;
226 }
227
228 return m_Type;
229 }
m_Type
Definition HitDirectionBase.c:173
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx

Перекрестные ссылки ErrorEx, m_ID и m_Type.

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

◆ GetImageData() [1/4]

override HitDirectionImagesBase GetImageData ( )
inlineprivate
5 {
6 typename type = HitDirectionImagesArrow;
8 return data;
9 }

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

◆ GetImageData() [2/4]

HitDirectionImagesBase GetImageData ( )
inlineprivate
73{}

◆ GetImageData() [3/4]

override HitDirectionImagesBase GetImageData ( )
inlineprivate
5 {
6 typename type = HitDirectionImagesSpike;
8 return data;
9 }

◆ GetImageData() [4/4]

override HitDirectionImagesBase GetImageData ( )
inlineprivate
5 {
6 typename type = HitDirectionImagesSplash;
8 return data;
9 }

◆ Init()

void Init ( DayZPlayer player,
float hit_direction,
float intensity_max )
inlineprivate

Called manually after object spawn.

46 {
52 m_Scatter = Math.Clamp(m_Scatter,0.0,180.0);
54
56 w = w.GetChildren();
57 while (w)
58 {
59 w.Show(m_Image == w);
60 w = w.GetSibling();
61 }
62
63 m_Image.SetColor(m_Color);
64
65 m_LayoutRoot.Show(true);
66
70 m_Initialized = true;
71 }
override void SetIndicatorRotation(float timeslice=-1.0)
Definition HitDirectionArrow.c:20
const float DURATION_COEF_MIN
Definition HitDirectionBase.c:5
void SetIndicatorPositon(float timeslice=-1.0)
Definition HitDirectionBase.c:161
void CalculateArrowPosition(float timeslice=-1.0)
Definition HitDirectionBase.c:123
float m_IntensityMax
Definition HitDirectionBase.c:12
const float INTENSITY_MIN
Definition HitDirectionBase.c:6
float m_BreakPoint
Definition HitDirectionBase.c:10
Definition EnWidgets.c:190
static proto float Pow(float v, float power)
Return power of v ^ power.
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Definition EnMath.c:106
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:54

Перекрестные ссылки CalculateArrowPosition(), Math::Clamp(), DURATION_COEF_MIN, INTENSITY_MIN, m_BreakPoint, m_BreakPointBase, m_Color, m_Duration, m_DurationMax, m_HitDirection, m_Image, m_Initialized, m_IntensityMax, m_LayoutRoot, m_Player, m_Scatter, Math::Pow(), Math::RandomFloatInclusive(), Math::RandomIntInclusive(), SetIndicatorPositon() и SetIndicatorRotation().

◆ SetIndicatorPositon()

void SetIndicatorPositon ( float timeslice = -1.0)
inlineprivate
162 {
163 m_LayoutRoot.SetPos(m_PosX,m_PosY,true);
164 }

Перекрестные ссылки m_LayoutRoot, m_PosX и m_PosY.

Используется в Init() и Update().

◆ SetIndicatorRotation() [1/4]

override void SetIndicatorRotation ( float timeslice = -1.0)
inlineprivate
21 {
22 if (m_RotationOverride == HitDirectionConstants.ROTATION_DEFAULT)
23 {
24 m_LayoutRoot.SetRotation(0,0,Math.RAD2DEG * m_AngleRad,true);
25 }
26 else
27 {
28 m_LayoutRoot.SetRotation(0,0,m_RotationOverride,true);
29 }
30 }
static const float RAD2DEG
Definition EnMath.c:16

Перекрестные ссылки Math::RAD2DEG.

Используется в Init() и Update().

◆ SetIndicatorRotation() [2/4]

void SetIndicatorRotation ( float timeslice = -1.0)
inlineprivate
159{}

◆ SetIndicatorRotation() [3/4]

override void SetIndicatorRotation ( float timeslice = -1.0)
inlineprivate
21 {
22 if (m_RotationOverride == HitDirectionConstants.ROTATION_DEFAULT)
23 {
24 m_LayoutRoot.SetRotation(0,0,Math.RAD2DEG * m_AngleRad,true);
25 }
26 else
27 {
28 m_LayoutRoot.SetRotation(0,0,m_RotationOverride,true);
29 }
30 }

Перекрестные ссылки Math::RAD2DEG.

◆ SetIndicatorRotation() [4/4]

override void SetIndicatorRotation ( float timeslice = -1.0)
inlineprivate
19 {
20 if ( timeslice == -1.0) //does not rotate on dynamic mode update
21 {
22 if (m_RotationOverride == HitDirectionConstants.ROTATION_DEFAULT)
23 {
24 m_LayoutRoot.SetRotation(0,0,Math.RandomIntInclusive(0,359),true);
25 }
26 else
27 {
28 m_LayoutRoot.SetRotation(0,0,m_RotationOverride,true);
29 }
30 }
31 }

Перекрестные ссылки Math::RandomIntInclusive().

◆ Update()

void Update ( float timeslice)
inlineprivate
91 {
92 float intensity;
93
95 {
97 }
98 else
99 {
102 }
103
106
107 if ( m_TimeActive >= m_Duration )
108 {
109 m_LayoutRoot.Show(false);
110 }
111 else
112 {
113 m_LayoutRoot.SetAlpha(intensity);
114 if ( m_Mode == HitDirectionModes.DYNAMIC )
115 {
119 }
120 }
121 }
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.

Перекрестные ссылки CalculateArrowPosition(), Math::Clamp(), Math::InverseLerp(), Math::Lerp(), m_BreakPoint, m_Duration, m_IntensityMax, m_LayoutRoot, m_Mode, m_TimeActive, SetIndicatorPositon() и SetIndicatorRotation().

Поля

◆ DURATION_COEF_MIN

const float DURATION_COEF_MIN = 0.6
private

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

◆ INTENSITY_MIN

const float INTENSITY_MIN = 0.6
private

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

◆ m_AngleRad

float m_AngleRad
private

Используется в CalculateArrowPosition() и HitDirectionEffectBase().

◆ m_AngleRadPrev

float m_AngleRadPrev
private

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

◆ m_BreakPoint

float m_BreakPoint
private

Используется в Init() и Update().

◆ m_BreakPointBase

float m_BreakPointBase
staticprotected

Используется в CheckValues() и Init().

◆ m_Color

int m_Color
staticprivate

Используется в CheckValues() и Init().

◆ m_DistanceAdjust

float m_DistanceAdjust
staticprotected

range 0..1, a point where the fading starts

Используется в CalculateArrowPosition() и CheckValues().

◆ m_Duration

float m_Duration
private

Используется в DurationCheck(), Init() и Update().

◆ m_DurationMax

float m_DurationMax
staticprotected

Используется в CheckValues() и Init().

◆ m_HitDirection

float m_HitDirection
private

Используется в CalculateArrowPosition() и Init().

◆ m_ID

int m_ID
staticprivate

Используется в CheckValues() и GetCurrentType().

◆ m_Image

Widget m_Image
private

Используется в HitDirectionEffectBase() и Init().

◆ m_ImageData

ref HitDirectionImagesBase m_ImageData
private

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

◆ m_Initialized

bool m_Initialized
private

Используется в CalculateArrowPosition(), HitDirectionEffectBase() и Init().

◆ m_IntensityMax

float m_IntensityMax
private

Используется в Init() и Update().

◆ m_LayoutRoot

Widget m_LayoutRoot
private

◆ m_Mode

int m_Mode
staticprivate

Используется в CheckValues(), Hud::SpawnHitDirEffect() и Update().

◆ m_Player

DayZPlayer m_Player
private

Используется в CalculateArrowPosition() и Init().

◆ m_PosX

float m_PosX
private

◆ m_PosXScreenEdge

float m_PosXScreenEdge
private

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

◆ m_PosY

float m_PosY
private

◆ m_PosYScreenEdge

float m_PosYScreenEdge
private

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

◆ m_RotationOverride

int m_RotationOverride
staticprotected

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

◆ m_Scatter

float m_Scatter
staticprotected

Используется в CheckValues() и Init().

◆ m_ServerOverrideEnabled

bool m_ServerOverrideEnabled
staticprivate

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

◆ m_SizeXEnf

int m_SizeXEnf
private

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

◆ m_SizeYEnf

int m_SizeYEnf
private

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

◆ m_SmoothVel

float m_SmoothVel[1]
private

Используется в CalculateArrowPosition() и HitDirectionEffectBase().

◆ m_TimeActive

float m_TimeActive
private

Используется в DurationCheck() и Update().

◆ m_Type

m_Type
staticprotected

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


Объявления и описания членов классов находятся в файлах: