DayZ 1.30
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 строка 20

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

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