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

◆ Can()

override bool CCTWaterSurface::Can ( PlayerBase player,
ActionTarget target )
inlineprotected

use hit position from ActionTarget otherwise player's position

special handling for sea

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

19 {
20 if (!target || (target && target.GetObject()))
21 return false;
22
24 vector hitPosition = target.GetCursorHitPos();
25
26 string surfaceType;
27 float waterLevel = player.GetCurrentWaterLevel();
28 g_Game.SurfaceGetType3D(hitPosition[0], hitPosition[1] + waterLevel, hitPosition[2], surfaceType);
29
30 if (waterLevel > 0.0)
31 return Surface.AllowedWaterSurface(hitPosition[1] + waterLevel, surfaceType, m_AllowedSurfaceList);
32
33 float surfaceHeight = g_Game.SurfaceY(hitPosition[0], hitPosition[2]);
35 if (!surfaceType)
36 {
37 surfaceHeight = hitPosition[1];
38 }
39
40 float heightDiff = Math.AbsFloat(hitPosition[1] - surfaceHeight);
41 if (surfaceType != "" && heightDiff > HEIGHT_DIFF_LIMIT_METERS)
42 return false;
43
44 float distSq = vector.DistanceSq(player.GetPosition(), hitPosition);
45 if (distSq > m_MaximalActionDistanceSq)
46 return false;
47
48 return Surface.AllowedWaterSurface(hitPosition[1], surfaceType, m_AllowedSurfaceList);
49 }
DayZGame g_Game
Определения DayZGame.c:3868
float m_MaximalActionDistanceSq
Определения CCTWaterSurface.c:5
const int HEIGHT_DIFF_LIMIT_METERS
Определения CCTWaterSurface.c:3
ref array< string > m_AllowedSurfaceList
DEPRECATED.
Определения CCTWaterSurface.c:7

Перекрестные ссылки Math::AbsFloat(), ActionTarget, Surface::AllowedWaterSurface(), vector::DistanceSq(), g_Game, HEIGHT_DIFF_LIMIT_METERS, m_AllowedSurfaceList и m_MaximalActionDistanceSq.