DayZ 1.29
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 || !m_AM)
320 return;
321
322 if (m_Player.IsInVehicle() || m_AM.GetRunningAction())
323 m_Hidden = true;
324
325
326 /*
327 #ifdef DIAG_DEVELOPER
328 if (DeveloperFreeCamera.IsFreeCameraEnabled())
329 HideWidget();
330 return;
331 #endif
332 */
333
334 bool isVisionObstructionActive = PPEManagerStatic.GetPPEManager().IsAnyRequesterRunning(VISION_OBSTRUCTION_PPEFFECTS_TYPES);
335
337 if (isVisionObstructionActive || m_Hud.GetHudVisibility().IsContextFlagActive(IngameHudVisibility.HUD_HIDE_FLAGS))
338 {
339 HideWidget();
340 return;
341 }
342
343 GetTarget();
344 GetActions();
345
347 bool showTarget = (m_Target && !m_Hidden) || m_Interact || m_ContinuousInteract;
348 if (!showTarget)
349 {
350 if (m_Single)
351 showTarget = m_Single.HasTarget();
352
353 if (m_Continuous)
354 showTarget = showTarget || m_Continuous.HasTarget();
355 }
356
357 if (showTarget)
358 {
360 if (m_Target.GetObject() == null && (m_Interact || m_ContinuousInteract || m_Single || m_Continuous))
361 {
362 //Print(">> fixed widget");
363 m_CachedObject.Invalidate();
365 m_Root.Show(true);
366 m_FixedOnPosition = false;
367 m_Hidden = false;
368 return;
369 }
370 else if (m_Target.GetObject() != null && !m_Target.GetObject().IsHologram() && (!m_Target.GetParent() || m_Target.GetParent() && !m_Target.GetParent().IsHologram()))
371 {
374 if (m_Target.GetObject() != m_CachedObject.Get())
375 {
377 {
378 //Print(">> non-cached widget");
379 m_CachedObject.Invalidate();
381 m_Root.Show(true);
382 m_Hidden = false;
383 return;
384 }
385 else
386 {
387 //Print(">> non-cached widget (fixed)");
388 m_CachedObject.Invalidate();
390 m_Root.Show(true);
391 m_FixedOnPosition = false;
392 m_Hidden = false;
393 return;
394 }
395 }
397 else if (m_Target.GetObject() == m_CachedObject.Get())
398 {
400 {
401 //Print(">> cached widget");
403 m_Root.Show(true);
404 m_Hidden = false;
405 return;
406 }
407 else
408 {
409 //Print(">> cached widget (fixed)");
410 m_CachedObject.Invalidate();
412 m_Root.Show(true);
413 m_FixedOnPosition = false;
414 m_Hidden = false;
415 return;
416 }
417 }
418 }
419 else
420 {
421 if (m_Root.IsVisible())
422 {
423 m_CachedObject.Invalidate();
424 m_Root.Show(false);
425 m_Hidden = false;
426
427 // remove previous backlit
428 GetDayZGame().GetBacklit().HintClear();
429 }
430 }
431 }
432 else
433 {
434 if (m_Root.IsVisible())
435 {
436 m_CachedObject.Invalidate();
437 m_Root.Show(false);
438 m_FixedOnPosition = false;
439
440 // remove previous backlit
441 GetDayZGame().GetBacklit().HintClear();
442 }
443
444 m_Hidden = false;
445 }
446
447 m_MaxWidthChild = 350;
DayZGame GetDayZGame()
Определения DayZGame.c:3944
void GetActionManager()
Определения ActionTargetsCursor.c:691
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:1293
void GetActions()
get actions from Action Manager
Определения ActionTargetsCursor.c:704
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:686
void GetTarget()
Определения ActionTargetsCursor.c:746
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().