DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
WorldData.c
См. документацию.
1
3{
4 const float SPAWN_CHANCE_CHOLERA_DEF = 50;
6
12
13 protected float SUDDENCHANGE_TIME_MULTIPLIER = 0.2;
14 protected float SUDDENCHANGE_LENGTH_MULTIPLIER = 0.4;
15 protected float WIND_MAGNITUDE_TIME_MULTIPLIER = 0.1;
16 protected float WIND_DIRECTION_TIME_MULTIPLIER = 0.05;
17
18 protected Weather m_Weather;
19 protected float m_EnvironmentTemperature;
20 protected bool m_EnTempUpdated;
21 protected float m_Timer;
22 protected float m_MaxTemps[12];
23 protected float m_MinTemps[12];
24 protected float m_Sunrise_Jan;
25 protected float m_Sunset_Jan;
26 protected float m_Sunrise_Jul;
27 protected float m_Sunset_Jul;
28 protected ref array<vector> m_FiringPos; // Where we should fire from. On Init set the relevant data
29 protected bool m_Pollution;
32 protected ref WorldDataLiquidSettings m_LiquidSettings;
34
36 protected int m_BadWeatherChance;
37 protected int m_ClearWeatherChance;
38 protected bool m_IsSuddenChange;
39 protected float m_WorldWindCoef;
40
42
43 //used at next weather calculation
44 protected int m_SameWeatherCnt = 0;
45 protected int m_StepValue = 5;
46 protected int m_Chance = 50;
47 protected int m_ChoosenWeather = 1;
48 protected int m_LastWeather = 0;
49
50 void WorldData()
51 {
52 Init();
56 }
57
58 void Init()
59 {
62
63 m_EnTempUpdated = false;
64 m_Weather = g_Game.GetWeather();
66 m_Timer = 0.0;
67 m_Sunrise_Jan = 8.54;
68 m_Sunset_Jan = 15.52;
69 m_Sunrise_Jul = 3.26;
70 m_Sunset_Jul = 20.73;
71 m_MaxTemps = {3,5,7,14,19,24,26,25,21,16,10,5};
72 m_MinTemps = {-3,-2,0,4,9,14,18,17,12,7,4,0};
73 m_Pollution = EPollution.NONE;
74 m_WorldWindCoef = 0.5;
75
77
82
85
87 }
88
89 float GetApproxSunriseTime( float monthday )
90 {
91 if ( monthday <= 8.0 )
92 return ( ( m_Sunrise_Jan - m_Sunrise_Jul ) / ( 8 - 1 ) ) * ( 1 - monthday ) + m_Sunrise_Jan;
93 else
94 return ( ( ( monthday - 8 ) * ( m_Sunrise_Jan - m_Sunrise_Jul ) ) / ( 13 - 8 ) ) + m_Sunrise_Jul;
95 }
96 float GetApproxSunsetTime( float monthday )
97 {
98 if ( monthday <= 8.0 )
99 return ( ( m_Sunset_Jan - m_Sunset_Jul ) / (8 - 1) ) * ( 1 - monthday ) + m_Sunset_Jan;
100 else
101 return ( ( ( monthday - 8 ) * ( m_Sunset_Jan - m_Sunset_Jul ) ) / ( 13 - 8 ) ) + m_Sunset_Jul;
102 }
103
105 {
106 int year, month, day, hour, minute;
107 GetGame().GetWorld().GetDate(year, month, day, hour, minute);
108
109 float sunriseTimeStart = g_Game.GetMission().GetWorldData().GetApproxSunriseTime(month);
110 float sunsetTimeStart = g_Game.GetMission().GetWorldData().GetApproxSunsetTime(month);
111
112 if (hour >= sunriseTimeStart && hour < (sunriseTimeStart + 2))
113 return WorldDataDaytime.DAWN;
114 else if (hour >= (sunriseTimeStart + 2) && hour < sunsetTimeStart)
115 return WorldDataDaytime.DAY;
116 else if (hour >= sunsetTimeStart && hour < (sunsetTimeStart + 2))
117 return WorldDataDaytime.DUSK;
118
119 return WorldDataDaytime.NIGHT;
120 }
121
122 protected float CalcBaseEnvironmentTemperature( float monthday, float daytime )
123 {
124 float approxSunrise = GetApproxSunriseTime( monthday );
125 float approxSunset = GetApproxSunsetTime( monthday );
126 float dayLight = approxSunset - approxSunrise;
127 float nightTime = 24.0 - dayLight;
128 int tempArrayIndex = Math.Floor(monthday) - 1;
129 int tempArrayIndexToLerp = tempArrayIndex + 1;
130 if ( tempArrayIndexToLerp >= 12 )
131 tempArrayIndexToLerp = 0;
132 float tempArrayLerp = monthday - Math.Floor(monthday);
133 float minTempA = m_MinTemps[tempArrayIndex];
134 float minTempB = m_MinTemps[tempArrayIndexToLerp];
135 float maxTempA = m_MaxTemps[tempArrayIndex];
136 float maxTempB = m_MaxTemps[tempArrayIndexToLerp];
137 float eveningMinA = minTempA + ( 0.5 * Math.AbsFloat( minTempA - maxTempA ) );
138 float eveningMinB = minTempB + ( 0.5 * Math.AbsFloat( minTempB - maxTempB ) );
139
140 if ( ( daytime >= approxSunrise ) && ( daytime <= approxSunset ) ) {
141 if ( daytime <= ( approxSunrise + ( dayLight * 0.75 ) ) )
142 return Math.Lerp(
143 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
144 Math.Lerp( maxTempA, maxTempB, tempArrayLerp ),
145 ( ( daytime - approxSunrise ) / ( dayLight * 0.75 ) ) );
146 else
147 return Math.Lerp(
148 Math.Lerp( maxTempA, maxTempB, tempArrayLerp ),
149 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
150 ( ( ( daytime - approxSunrise ) - ( dayLight * 0.75 ) ) / ( dayLight - ( dayLight * 0.75 ) ) ) );
151 } else {
152 if ( ( daytime > approxSunset ) && ( daytime < 24 ) )
153 return Math.Lerp(
154 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
155 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
156 ( ( daytime - approxSunset ) / ( 24 - approxSunset ) ) / 2.0 );
157 else
158 return Math.Lerp(
159 Math.Lerp( eveningMinA, eveningMinB, tempArrayLerp ),
160 Math.Lerp( minTempA, minTempB, tempArrayLerp ),
161 ( ( ( daytime + ( 24 - approxSunset ) ) / nightTime ) / 2.0 ) + 0.5 );
162 }
163 }
164 void UpdateBaseEnvTemperature(float timeslice)
165 {
166 m_Timer += timeslice;
167 if (m_Timer > 30 || !m_EnTempUpdated)
168 {
169 int year, month, day, hour, minute;
170 GetGame().GetWorld().GetDate( year, month, day, hour, minute );
171 m_EnvironmentTemperature = CalcBaseEnvironmentTemperature( month + ( day / 32.0 ), hour + ( minute / 60.0 ) );
172 m_Timer = 0;
173
174 if (!m_EnTempUpdated)
175 m_EnTempUpdated = true;
176 }
177 }
178
184 void UpdateWeatherEffects( Weather weather, float timeslice )
185 {
186 float snowflakeScale = ComputeSnowflakeScale( weather );
187 weather.SetSnowflakeScale( snowflakeScale );
188 }
189
195 {
196 float overcast01 = Math.Clamp( Math.InverseLerp( 0.4, 1.0, weather.GetOvercast().GetActual() ), 0.0, 1.0 ); // remap range to <0.4, 1.0> snowfall overcast threshold
197 float wind01 = weather.GetWindSpeed() / weather.GetWindMaximumSpeed();
198
199 float overcastScale = Math.Lerp( 0.50, 1.25, overcast01 );
200 float windScale = Math.Lerp( 1.25, 1.00, wind01 );
201
202 return Math.Clamp( overcastScale * windScale, 0.50, 1.25 );
203 }
204
205 // getter for the new base enviro temperature
207 {
209 }
210
212 {
214 }
215
217 {
218 float terrainHeight = pos[1];
219 float heightCorrection = Math.Max(0, (terrainHeight * m_TemperaturePerHeightReductionModifier));
220 return m_EnvironmentTemperature - heightCorrection;
221 }
222
223 float GetBaseEnvTemperatureExact(int month, int day, int hour, int minute)
224 {
225 return CalcBaseEnvironmentTemperature( month + ( day / 32.0 ), hour + ( minute / 60.0 ) );
226 }
227
228 float GetLiquidTypeEnviroTemperature(int liquidType)
229 {
230 if (m_LiquidSettings.m_Temperatures.Count() > 0 && m_LiquidSettings.m_Temperatures.Contains(liquidType) != INDEX_NOT_FOUND)
231 return m_LiquidSettings.m_Temperatures.Get(liquidType);
232
233 #ifdef DEVELOPER
234 ErrorEx("Undefined enviro temperature for liquid type: " + liquidType);
235 #endif
236
238 }
239
240 bool WeatherOnBeforeChange( EWeatherPhenomenon type, float actual, float change, float time )
241 {
242 // default behaviour is same like setting MissionWeather (in Weather) to true
243 return false;
244 }
245
246 // Used to return the artillery firing positions
248 {
249 return m_FiringPos;
250 }
251
252 // Returns chance percentage for selected agent to spawn, used with spawned loot
254 {
255 if (agent == eAgents.CHOLERA)
257
258 return 0;
259 }
260
261 // Returns modifier which is added to the tool damage logic when player is in cold area
266
267 // debug
268 void BaseTempDebug(int month, int day)
269 {
270 Print("--------------------");
271 for ( int i = 0; i < 24; i++ )
272 {
273 for ( int j = 0; j < 6; j++ )
274 {
275 int minute = ( j * 10 );
276 Print(string.Format( "%1:%2 %3", i, minute, GetBaseEnvTemperatureExact( month, day, i, minute ) ) );
277 }
278 }
279 }
280
282 {
283 return m_Pollution;
284 }
285
287 {
288 return m_WorldWindCoef;
289 }
290
295
302 {
303 // EEnvironmentTemperatureComponent.BASE only
304 float temperature = GetBaseEnvTemperature();
305
306 if (object && properties & EEnvironmentTemperatureComponent.ALTITUDE)
307 temperature = GetBaseEnvTemperatureAtObject(object);
308
309 if (properties & EEnvironmentTemperatureComponent.OVERCAST)
310 temperature += m_Weather.GetOvercast().GetActual() * m_CloudsTemperatureEffectModifier;
311
312 if (properties & EEnvironmentTemperatureComponent.WIND)
313 temperature += WindEffectTemperatureValue(temperature);
314
315 if (properties & EEnvironmentTemperatureComponent.FOG)
316 temperature += m_Weather.GetFog().GetActual() * GameConstants.ENVIRO_FOG_TEMP_EFFECT;
317
318 return temperature;
319 }
320
326 float GetTemperatureComponentValue(float temperatureIn, EEnvironmentTemperatureComponent properties = 0)
327 {
328 float temperatureOut = 0.0;
329
330 if ((properties & EEnvironmentTemperatureComponent.OVERCAST) == EEnvironmentTemperatureComponent.OVERCAST)
331 temperatureOut = m_Weather.GetOvercast().GetActual() * m_CloudsTemperatureEffectModifier;
332 else if ((properties & EEnvironmentTemperatureComponent.WIND) == EEnvironmentTemperatureComponent.WIND)
333 temperatureOut = WindEffectTemperatureValue(temperatureIn);
335 temperatureOut = m_Weather.GetFog().GetActual() * GameConstants.ENVIRO_FOG_TEMP_EFFECT;
336 else
337 {
338 Debug.Log(string.Format("Only OVERCAST, WIND and FOG parameters are supported"));
339 }
340
341 return temperatureOut;
342 }
343
344 protected float WindEffectTemperatureValue(float temperatureInput)
345 {
346 float temperatureOutput = 0.0;
347
349 temperatureOutput = temperatureOutput * m_Weather.GetWindMagnitude().GetActual() * GetWindCoef();
350
351 return -temperatureOutput;
352 }
353
354 protected void CalculateWind(int newWeather, bool suddenChange, out float magnitude, out float direction);
355
356 protected void CalculateVolFog(float lerpValue, float windMagnitude, float changeTime);
357
358 protected void CreateYieldBank()
359 {
361 }
362
364 protected void InitYieldBank()
365 {
366 GetDayZGame().GetYieldDataInitInvoker().Invoke(m_YieldBank); //injects defaults from 4_World and above
367 }
368
373
374 protected void SetupLiquidTemperatures()
375 {
376 m_LiquidSettings = new WorldDataLiquidSettings();
377
378 m_LiquidSettings.m_Temperatures[LIQUID_SALTWATER] = 23.0;
379 m_LiquidSettings.m_Temperatures[LIQUID_WATER] = 15.0;
380 m_LiquidSettings.m_Temperatures[LIQUID_STILLWATER] = 15.0;
381 m_LiquidSettings.m_Temperatures[LIQUID_RIVERWATER] = 15.0;
382 m_LiquidSettings.m_Temperatures[LIQUID_FRESHWATER] = 15.0;
383 m_LiquidSettings.m_Temperatures[LIQUID_CLEANWATER] = 10.0;
384 m_LiquidSettings.m_Temperatures[LIQUID_SNOW] = -5.0;
385 }
386
391
396
397
401
402 protected float m_DayTemperature = 10; // legacy, no longer used
403 protected float m_NightTemperature = 6; // legacy, no longer used
404
406 {
407 return m_DayTemperature;
408 }
409
411 {
412 return m_NightTemperature;
413 }
414}
415
416class WorldDataWeatherConstants
417{
418 const int CLEAR_WEATHER = 1;
419 const int CLOUDY_WEATHER = 2;
420 const int BAD_WEATHER = 3;
421}
422
456
457class WorldDataLiquidSettings
458{
460}
461
463{
464 static int ANY = -1;
465 static int NIGHT = 0;
466 static int DAY = 1;
467 static int DUSK = 2;
468 static int DAWN = 3;
469
470 static string ToString(int value)
471 {
472 switch (value)
473 {
474 case NIGHT:
475 return "NIGHT";
476 case DAY:
477 return "DAY";
478 case DUSK:
479 return "DUSK";
480 case DAWN:
481 return "DAWN";
482 }
483
484 return "ANYTIME";
485 }
486}
map
Определения ControlsXboxNew.c:4
DayZGame g_Game
Определения DayZGame.c:3868
DayZGame GetDayZGame()
Определения DayZGame.c:3870
eAgents
Определения EAgents.c:3
EEnvironmentTemperatureComponent
EWeatherPhenomenon
Определения Weather.c:11
class WorldDataWeatherSettings m_Temperatures
const int BAD_WEATHER
Определения WorldData.c:420
class WorldData CLEAR_WEATHER
const int CLOUDY_WEATHER
Определения WorldData.c:419
proto native World GetWorld()
Определения CatchYieldBank.c:4
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Определения Debug.c:122
Определения Debug.c:2
Определения constants.c:659
Определения EnMath.c:7
Определения ObjectTyped.c:2
proto native void SetSnowflakeScale(float scale)
Sets the overall scale of snowflakes during snowfall phenomenon. This value is not synchronized and s...
proto native float GetWindSpeed()
Returns actual wind speed in metre per second.
proto native float GetWindMaximumSpeed()
Returns maximal wind speed in metre per second.
proto native Overcast GetOvercast()
Returns an overcast phenomenon object.
Определения Weather.c:165
proto native float GetActual()
proto void GetDate(out int year, out int month, out int day, out int hour, out int minute)
Get actual ingame world time.
float GetAgentSpawnChance(eAgents agent)
Определения WorldData.c:253
float GetApproxSunriseTime(float monthday)
Определения WorldData.c:89
void Init()
Определения WorldData.c:58
float ComputeSnowflakeScale(Weather weather)
Returns the desired snowflake scale based on weather simulation state.
Определения WorldData.c:194
float SUDDENCHANGE_TIME_MULTIPLIER
Определения WorldData.c:13
float m_Timer
Определения WorldData.c:21
float GetTemperature(Object object, EEnvironmentTemperatureComponent properties=EEnvironmentTemperatureComponent.BASE)
Return actual temperature of environment based on provided parameters.
Определения WorldData.c:301
void UpdateBaseEnvTemperature(float timeslice)
Определения WorldData.c:164
void CalculateWind(int newWeather, bool suddenChange, out float magnitude, out float direction)
float SUDDENCHANGE_LENGTH_MULTIPLIER
Определения WorldData.c:14
ref WorldDataLiquidSettings m_LiquidSettings
Определения WorldData.c:32
bool m_Pollution
Определения WorldData.c:29
float GetNightTemperature()
Определения WorldData.c:410
float WIND_DIRECTION_TIME_MULTIPLIER
Определения WorldData.c:16
CatchYieldBank GetCatchYieldBank()
Определения WorldData.c:387
void CreateYieldBank()
Определения WorldData.c:358
float m_Sunset_Jan
Определения WorldData.c:25
float GetBaseEnvTemperature()
Определения WorldData.c:206
float m_WorldWindCoef
Определения WorldData.c:39
float m_Sunrise_Jan
Определения WorldData.c:24
float GetBaseEnvTemperatureAtObject(notnull Object object)
Определения WorldData.c:211
float GetDayTemperature()
Определения WorldData.c:405
float m_DayTemperature
Определения WorldData.c:402
int m_ClearWeatherChance
Определения WorldData.c:37
float GetBaseEnvTemperatureAtPosition(vector pos)
Определения WorldData.c:216
int GetPollution()
Определения WorldData.c:281
bool WeatherOnBeforeChange(EWeatherPhenomenon type, float actual, float change, float time)
Определения WorldData.c:240
ref WorldDataWeatherSettings m_WeatherDefaultSettings
Определения WorldData.c:31
float GetApproxSunsetTime(float monthday)
Определения WorldData.c:96
void WorldData()
Определения WorldData.c:50
array< vector > GetArtyFiringPos()
Определения WorldData.c:247
ref array< vector > m_FiringPos
Определения WorldData.c:28
float m_WaterContactTemperatureModifier
Определения WorldData.c:11
float m_TemperaturePerHeightReductionModifier
directly accesible (defined/overriden in Init())
Определения WorldData.c:8
float m_CloudsTemperatureEffectModifier
amount of °C reduced for each 100 meteres of height above water level
Определения WorldData.c:9
TStringArray GetDefaultPRAPaths()
Определения WorldData.c:392
void UpdateWeatherEffects(Weather weather, float timeslice)
Updates local weather effects.
Определения WorldData.c:184
ref CatchYieldBank m_YieldBank
Определения WorldData.c:30
int m_Chance
Определения WorldData.c:46
float GetBaseEnvTemperatureExact(int month, int day, int hour, int minute)
Определения WorldData.c:223
float m_TemperatureInsideBuildingsModifier
how many % of environment temperature can be lowered by clouds
Определения WorldData.c:10
int m_LastWeather
Определения WorldData.c:48
float GetWindCoef()
Определения WorldData.c:286
float m_MaxTemps[12]
Определения WorldData.c:22
void CalculateVolFog(float lerpValue, float windMagnitude, float changeTime)
const float COLD_AREA_TOOL_DMG_MODIF_DEF
Определения WorldData.c:5
const float SPAWN_CHANCE_CHOLERA_DEF
Определения WorldData.c:4
int m_SameWeatherCnt
Определения WorldData.c:44
void BaseTempDebug(int month, int day)
Определения WorldData.c:268
float m_MinTemps[12]
Определения WorldData.c:23
ref TStringArray m_DefaultPlayerRestrictedAreas
Определения WorldData.c:33
float GetUniversalTemperatureSourceCapModifier()
Определения WorldData.c:291
int m_BadWeatherChance
weather related
Определения WorldData.c:36
int m_StepValue
Определения WorldData.c:45
float GetColdAreaToolDamageModifier()
Определения WorldData.c:262
float WIND_MAGNITUDE_TIME_MULTIPLIER
Определения WorldData.c:15
bool m_IsSuddenChange
Определения WorldData.c:38
float m_EnvironmentTemperature
Определения WorldData.c:19
float m_NightTemperature
Определения WorldData.c:403
void SetupWeatherSettings()
Определения WorldData.c:369
bool m_EnTempUpdated
Определения WorldData.c:20
float m_UniversalTemperatureSourceCapModifier
Определения WorldData.c:41
float GetLiquidTypeEnviroTemperature(int liquidType)
Определения WorldData.c:228
void SetupLiquidTemperatures()
Определения WorldData.c:374
Weather m_Weather
Определения WorldData.c:18
float GetTemperatureComponentValue(float temperatureIn, EEnvironmentTemperatureComponent properties=0)
Return value of queried EEnvironmentTemperatureComponent which can be used in future calculation(s)
Определения WorldData.c:326
int GetDaytime()
Определения WorldData.c:104
void InitYieldBank()
override this to properly register world-specific yields
Определения WorldData.c:364
float CalcBaseEnvironmentTemperature(float monthday, float daytime)
Определения WorldData.c:122
float m_Sunset_Jul
Определения WorldData.c:27
int m_ChoosenWeather
Определения WorldData.c:47
float m_Sunrise_Jul
Определения WorldData.c:26
float WindEffectTemperatureValue(float temperatureInput)
Определения WorldData.c:344
static int NIGHT
Определения WorldData.c:465
static int DAWN
Определения WorldData.c:468
static int DUSK
Определения WorldData.c:467
static string ToString(int value)
Определения WorldData.c:470
static int ANY
Определения WorldData.c:464
static int DAY
Определения WorldData.c:466
Определения WorldData.c:463
int m_CalmAfterStormTimeMax
Определения WorldData.c:454
int m_FoggyMorningHeigthBiasLowLimit
Определения WorldData.c:450
int m_OvercastMinLength
Определения WorldData.c:427
float m_ThundersnowThreshold
Определения WorldData.c:437
int m_RainTimeMin
Определения WorldData.c:431
int m_RainTimeMax
Определения WorldData.c:432
int m_RainLengthMax
Определения WorldData.c:434
int m_CalmAfterStormTimeMin
Определения WorldData.c:453
int m_SnowfallLengthMax
Определения WorldData.c:443
int m_DefaultHeigthBias
Определения WorldData.c:451
float m_SnowfallThreshold
Определения WorldData.c:439
int m_OvercastMaxLength
Определения WorldData.c:428
int m_RainLengthMin
Определения WorldData.c:433
int m_OvercastMaxTime
Определения WorldData.c:426
float m_StormThreshold
Определения WorldData.c:436
int m_SnowfallTimeMax
Определения WorldData.c:441
int m_BadWeatherSuddenChance
Определения WorldData.c:448
float m_RainThreshold
Определения WorldData.c:430
int m_OvercastMinTime
Определения WorldData.c:425
int m_SnowfallLengthMin
Определения WorldData.c:442
int m_GlobalSuddenChance
Определения WorldData.c:445
int m_SnowfallTimeMin
Определения WorldData.c:440
int m_ClearWeatherChance
Определения WorldData.c:446
int m_BadWeatherChance
Определения WorldData.c:447
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения EnConvert.c:106
const int INDEX_NOT_FOUND
Определения gameplay.c:13
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
array< string > TStringArray
Определения EnScript.c:685
const float ENVIRO_WIND_CHILL_LIMIT
Affects the slope of calculation.
Определения constants.c:793
const float ENVIRO_FOG_TEMP_EFFECT
how many % of ENVIRO_SUN_INCREMENT is reduced by fog
Определения constants.c:727
const float ENVIRO_WIND_EFFECT_SLOPE
time modifier, how much longer it takes to dig up worms while in a cold area
Определения constants.c:792
const int LIQUID_STILLWATER
Определения constants.c:550
const int LIQUID_FRESHWATER
Определения constants.c:549
const int LIQUID_CLEANWATER
Определения constants.c:552
const int LIQUID_WATER
Определения constants.c:539
const int LIQUID_RIVERWATER
Определения constants.c:540
const int LIQUID_SALTWATER
Определения constants.c:548
const int LIQUID_SNOW
Определения constants.c:547
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Floor(float f)
Returns floor of value.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
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 InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float AbsFloat(float f)
Returns absolute value.
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9