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

◆ Update()

void ActionTargetsCursor::Update ( )
inlineprotected

don't show floating widget if it's disabled in profile or the player is unconscious

check if action has target, otherwise don't show the widget

cursor with fixed position (environment interaction mainly)

build cursor for new target

use cached version for known target - recalculate onscreen pos only

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

306 {
307 if (m_Player && !m_Player.IsAlive()) // handle respawn
308 {
309 m_Player = null;
310 m_AM = null;
311 }
312
313 if (!m_Player)
314 GetPlayer();
315
316 if (!m_AM)
318
319 if (m_Player.IsInVehicle() || m_AM.GetRunningAction())
320 m_Hidden = true;
321
322
323 /*
324 #ifdef DIAG_DEVELOPER
325 if (DeveloperFreeCamera.IsFreeCameraEnabled())
326 HideWidget();
327 return;
328 #endif
329 */
330
331 bool isVisionObstructionActive = PPEManagerStatic.GetPPEManager().IsAnyRequesterRunning(VISION_OBSTRUCTION_PPEFFECTS_TYPES);
332
334 if (isVisionObstructionActive || m_Hud.GetHudVisibility().IsContextFlagActive(IngameHudVisibility.HUD_HIDE_FLAGS))
335 {
336 HideWidget();
337 return;
338 }
339
340 GetTarget();
341 GetActions();
342
344 bool showTarget = (m_Target && !m_Hidden) || m_Interact || m_ContinuousInteract;
345 if (!showTarget)
346 {
347 if (m_Single)
348 showTarget = m_Single.HasTarget();
349
350 if (m_Continuous)
351 showTarget = showTarget || m_Continuous.HasTarget();
352 }
353
354 if (showTarget)
355 {
357 if (m_Target.GetObject() == null && (m_Interact || m_ContinuousInteract || m_Single || m_Continuous))
358 {
359 //Print(">> fixed widget");
360 m_CachedObject.Invalidate();
362 m_Root.Show(true);
363 m_FixedOnPosition = false;
364 m_Hidden = false;
365 return;
366 }
367 else if (m_Target.GetObject() != null && !m_Target.GetObject().IsHologram() && (!m_Target.GetParent() || m_Target.GetParent() && !m_Target.GetParent().IsHologram()))
368 {
371 if (m_Target.GetObject() != m_CachedObject.Get())
372 {
374 {
375 //Print(">> non-cached widget");
376 m_CachedObject.Invalidate();
378 m_Root.Show(true);
379 m_Hidden = false;
380 return;
381 }
382 else
383 {
384 //Print(">> non-cached widget (fixed)");
385 m_CachedObject.Invalidate();
387 m_Root.Show(true);
388 m_FixedOnPosition = false;
389 m_Hidden = false;
390 return;
391 }
392 }
394 else if (m_Target.GetObject() == m_CachedObject.Get())
395 {
397 {
398 //Print(">> cached widget");
399 BuildFloatingCursor(false);
400 m_Root.Show(true);
401 m_Hidden = false;
402 return;
403 }
404 else
405 {
406 //Print(">> cached widget (fixed)");
407 m_CachedObject.Invalidate();
409 m_Root.Show(true);
410 m_FixedOnPosition = false;
411 m_Hidden = false;
412 return;
413 }
414 }
415 }
416 else
417 {
418 if (m_Root.IsVisible())
419 {
420 m_CachedObject.Invalidate();
421 m_Root.Show(false);
422 m_Hidden = false;
423
424 // remove previous backlit
425 GetDayZGame().GetBacklit().HintClear();
426 }
427 }
428 }
429 else
430 {
431 if (m_Root.IsVisible())
432 {
433 m_CachedObject.Invalidate();
434 m_Root.Show(false);
435 m_FixedOnPosition = false;
436
437 // remove previous backlit
438 GetDayZGame().GetBacklit().HintClear();
439 }
440
441 m_Hidden = false;
442 }
443
444 m_MaxWidthChild = 350;
DayZGame GetDayZGame()
Определения DayZGame.c:3870
void GetActionManager()
Определения ActionTargetsCursor.c:688
Widget m_Root
Определения ActionTargetsCursor.c:85
ActionBase m_Interact
Определения ActionTargetsCursor.c:65
const ref array< typename > VISION_OBSTRUCTION_PPEFFECTS_TYPES
Определения ActionTargetsCursor.c:55
float m_MaxWidthChild
widget width
Определения ActionTargetsCursor.c:90
void BuildFixedCursor()
Определения ActionTargetsCursor.c:230
PlayerBase m_Player
Определения ActionTargetsCursor.c:60
ActionTarget m_Target
Определения ActionTargetsCursor.c:61
void HideWidget()
Определения ActionTargetsCursor.c:296
bool m_FixedOnPosition
Определения ActionTargetsCursor.c:81
void CheckRefresherFlagVisibilityEx(ActionTarget target)
Определения ActionTargetsCursor.c:1290
void GetActions()
get actions from Action Manager
Определения ActionTargetsCursor.c:701
ActionBase m_ContinuousInteract
Определения ActionTargetsCursor.c:66
bool m_Hidden
Определения ActionTargetsCursor.c:82
IngameHud m_Hud
Определения ActionTargetsCursor.c:70
ref ATCCachedObject m_CachedObject
Определения ActionTargetsCursor.c:62
ActionBase m_Continuous
Определения ActionTargetsCursor.c:68
ActionBase m_Single
Определения ActionTargetsCursor.c:67
ActionManagerClient m_AM
Определения ActionTargetsCursor.c:69
void GetPlayer()
Определения ActionTargetsCursor.c:683
void GetTarget()
Определения ActionTargetsCursor.c:743
void BuildFloatingCursor(bool forceRebuild)
Определения ActionTargetsCursor.c:242

Перекрестные ссылки BuildFixedCursor(), BuildFloatingCursor(), CheckRefresherFlagVisibilityEx(), GetActionManager(), GetActions(), GetDayZGame(), GetPlayer(), PPEManagerStatic::GetPPEManager(), GetTarget(), HideWidget(), m_AM, m_CachedObject, m_Continuous, m_ContinuousInteract, m_FixedOnPosition, m_Hidden, m_Hud, m_Interact, m_MaxWidthChild, m_Player, m_Root, m_Single, m_Target и VISION_OBSTRUCTION_PPEFFECTS_TYPES.

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