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

◆ CheckWaterContact()

void Environment::CheckWaterContact ( out float pWaterLevel)
inlineprotected

no valid surface under character

sync info about water contact to player

update active surface

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

360 {
361 string surfType;
362 int liquidType;
363
364 m_IsInWater = false;
365
366 if (m_Player.PhysicsGetLinkedEntity() || IsChildOfType({Transport}))
367 return;
368
369 if (m_Player.IsSwimming())
370 {
371 g_Game.SurfaceUnderObjectByBoneCorrectedLiquid(m_Player, SurfaceAnimationBone.RightFrontLimb, surfType, liquidType);
372 m_SurfaceType = surfType;
373 m_LiquidType = liquidType;
374
375 m_IsInWater = true;
376 m_Player.SetInWater(m_IsInWater);
377
378 HumanMovementState hms = new HumanMovementState();
379 m_Player.GetMovementState(hms);
380
381 pWaterLevel = WATER_LEVEL_MID;
382 if (hms.m_iMovement >= DayZPlayerConstants.MOVEMENTIDX_WALK)
383 pWaterLevel = WATER_LEVEL_HIGH;
384
385 return;
386 }
387
390 {
391 m_IsInWater = false;
392 return;
393 }
394
395 string impact;
396 g_Game.SurfaceUnderObjectExCorrectedLiquid(m_Player, surfType, impact, liquidType);
397
398 switch (liquidType)
399 {
400 case LIQUID_SALTWATER:
401 case LIQUID_WATER:
405 case LIQUID_HOTWATER:
406 pWaterLevel = m_Player.GetCurrentWaterLevel();
407 m_IsInWater = true;
408 break;
409 }
410
412 m_Player.SetInWater(m_IsInWater);
413
415 m_SurfaceType = surfType;
416 m_LiquidType = liquidType;
417
418 }
DayZGame g_Game
Определения DayZGame.c:3868
int m_LiquidType
Определения Environment.c:48
bool IsChildOfType(array< typename > typenames)
Определения Environment.c:295
const float WATER_LEVEL_HIGH
Определения Environment.c:20
string m_SurfaceType
Определения Environment.c:47
bool IsUnderRoofBuilding()
Определения Environment.c:304
const float WATER_LEVEL_MID
Определения Environment.c:21
PlayerBase m_Player
Определения Environment.c:30
bool m_IsInWater
Определения Environment.c:57
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
Определения human.c:1142
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
const int LIQUID_STILLWATER
Определения constants.c:550
const int LIQUID_HOTWATER
Определения constants.c:551
const int LIQUID_FRESHWATER
Определения constants.c:549
const int LIQUID_WATER
Определения constants.c:539
const int LIQUID_RIVERWATER
Определения constants.c:540
const int LIQUID_SALTWATER
Определения constants.c:548

Перекрестные ссылки g_Game, IsChildOfType(), IsUnderRoofBuilding(), LIQUID_FRESHWATER, LIQUID_HOTWATER, LIQUID_RIVERWATER, LIQUID_SALTWATER, LIQUID_STILLWATER, LIQUID_WATER, HumanMovementState::m_iMovement, m_IsInWater, m_LiquidType, m_Player, m_SurfaceType, WATER_LEVEL_HIGH и WATER_LEVEL_MID.

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