void CWeapon::UpdateFireDependencies_internal() { if (Device.dwFrame!=dwFP_Frame) { dwFP_Frame = Device.dwFrame; UpdateXForm (); if ( GetHUDmode() ) { HudItemData()->setup_firedeps (m_current_firedeps); VERIFY(_valid(m_current_firedeps.m_FireParticlesXForm)); } else { // 3rd person or no parent Fmatrix& parent = XFORM(); Fvector& fp = vLoadedFirePoint; Fvector& fp2 = vLoadedFirePoint2; Fvector& sp = vLoadedShellPoint; parent.transform_tiny (m_current_firedeps.vLastFP,fp); parent.transform_tiny (m_current_firedeps.vLastFP2,fp2); parent.transform_tiny (m_current_firedeps.vLastSP,sp); m_current_firedeps.vLastFD.set (0.f,0.f,1.f); parent.transform_dir (m_current_firedeps.vLastFD); m_current_firedeps.m_FireParticlesXForm.set(parent); VERIFY(_valid(m_current_firedeps.m_FireParticlesXForm)); } } }
void CEliteDetector::render_item_3d_ui() { R_ASSERT(HudItemData()); inherited::render_item_3d_ui(); ui().Draw (); // Restore cull mode UIRender->CacheSetCullMode (IUIRender::cmCCW); }
void CWeapon::UpdateHUDAddonsVisibility() {//actor only if(!GetHUDmode()) return; //. return; if(ScopeAttachable()) { HudItemData()->set_bone_visible(wpn_scope, IsScopeAttached() ); } if(m_eScopeStatus==ALife::eAddonDisabled ) { HudItemData()->set_bone_visible(wpn_scope, FALSE, TRUE ); }else if(m_eScopeStatus==ALife::eAddonPermanent) HudItemData()->set_bone_visible(wpn_scope, TRUE, TRUE ); if(SilencerAttachable()) { HudItemData()->set_bone_visible(wpn_silencer, IsSilencerAttached()); } if(m_eSilencerStatus==ALife::eAddonDisabled ) { HudItemData()->set_bone_visible(wpn_silencer, FALSE, TRUE); } else if(m_eSilencerStatus==ALife::eAddonPermanent) HudItemData()->set_bone_visible(wpn_silencer, TRUE, TRUE); if(GrenadeLauncherAttachable()) { HudItemData()->set_bone_visible(wpn_grenade_launcher, IsGrenadeLauncherAttached()); } if(m_eGrenadeLauncherStatus==ALife::eAddonDisabled ) { HudItemData()->set_bone_visible(wpn_grenade_launcher, FALSE, TRUE); }else if(m_eGrenadeLauncherStatus==ALife::eAddonPermanent) HudItemData()->set_bone_visible(wpn_grenade_launcher, TRUE, TRUE); }
void CWeaponRPG7::UpdateMissileVisibility() { bool vis_hud,vis_weap; vis_hud = (!!iAmmoElapsed || GetState()==eReload); vis_weap = !!iAmmoElapsed; if(GetHUDmode()) { HudItemData()->set_bone_visible("grenade",vis_hud,TRUE); } IKinematics* pWeaponVisual = smart_cast<IKinematics*>(Visual()); VERIFY (pWeaponVisual); pWeaponVisual->LL_SetBoneVisible(pWeaponVisual->LL_BoneID("grenade"), vis_weap, TRUE); }
void CWeapon::UpdateHudAdditonal (Fmatrix& trans) { CActor* pActor = smart_cast<CActor*>(H_Parent()); if(!pActor) return; if( (IsZoomed() && m_zoom_params.m_fZoomRotationFactor<=1.f) || (!IsZoomed() && m_zoom_params.m_fZoomRotationFactor>0.f)) { u8 idx = GetCurrentHudOffsetIdx(); // if(idx==0) return; attachable_hud_item* hi = HudItemData(); R_ASSERT (hi); Fvector curr_offs, curr_rot; curr_offs = hi->m_measures.m_hands_offset[0][idx];//pos,aim curr_rot = hi->m_measures.m_hands_offset[1][idx];//rot,aim curr_offs.mul (m_zoom_params.m_fZoomRotationFactor); curr_rot.mul (m_zoom_params.m_fZoomRotationFactor); Fmatrix hud_rotation; hud_rotation.identity (); hud_rotation.rotateX (curr_rot.x); Fmatrix hud_rotation_y; hud_rotation_y.identity (); hud_rotation_y.rotateY (curr_rot.y); hud_rotation.mulA_43 (hud_rotation_y); hud_rotation_y.identity (); hud_rotation_y.rotateZ (curr_rot.z); hud_rotation.mulA_43 (hud_rotation_y); hud_rotation.translate_over (curr_offs); trans.mulB_43 (hud_rotation); if(pActor->IsZoomAimingMode()) m_zoom_params.m_fZoomRotationFactor += Device.fTimeDelta/m_zoom_params.m_fZoomRotateTime; else m_zoom_params.m_fZoomRotationFactor -= Device.fTimeDelta/m_zoom_params.m_fZoomRotateTime; clamp(m_zoom_params.m_fZoomRotationFactor, 0.f, 1.f); } }
void CCustomDetector::UpdateVisibility() { //check visibility attachable_hud_item* i0 = g_player_hud->attached_item(0); if(i0 && HudItemData()) { CWeapon* wpn = smart_cast<CWeapon*>(i0->m_parent_hud_item); if(wpn) { u32 state = wpn->GetState(); bool bClimb = ( (Actor()->MovingState()&mcClimb) != 0 ); if(bClimb || wpn->IsZoomed() || state==CWeapon::eReload || state==CWeapon::eSwitch) { HideDetector (true); m_bNeedActivation = true; } } }else if(m_bNeedActivation) { attachable_hud_item* i0 = g_player_hud->attached_item(0); bool bClimb = ( (Actor()->MovingState()&mcClimb) != 0 ); if(!bClimb) { CWeapon* wpn = (i0)?smart_cast<CWeapon*>(i0->m_parent_hud_item) : NULL; if( !wpn || ( !wpn->IsZoomed() && wpn->GetState()!=CWeapon::eReload && wpn->GetState()!=CWeapon::eSwitch ) ) { ShowDetector (true); } } } }
bool CWeapon::IsHudModeNow() { return (HudItemData()!=NULL); }
void CWeaponMagazinedWGrenade::UpdateGrenadeVisibility(bool visibility) { if(!GetHUDmode()) return; HudItemData()->set_bone_visible ("grenade", visibility, TRUE); }