void CWeapon::OnH_B_Chield () { m_dwWeaponIndependencyTime = 0; inherited::OnH_B_Chield (); OnZoomOut (); m_set_next_ammoType_on_reload = undefined_ammo_type; }
void CWeapon::net_Import(NET_Packet& P) { inherited::net_Import (P); float _cond; P.r_float_q8 (_cond,0.0f,1.0f); SetCondition (_cond); u8 flags = 0; P.r_u8 (flags); u16 ammo_elapsed = 0; P.r_u16 (ammo_elapsed); u8 NewAddonState; P.r_u8 (NewAddonState); m_flagsAddOnState = NewAddonState; UpdateAddonsVisibility (); u8 ammoType, wstate; P.r_u8 (ammoType); P.r_u8 (wstate); u8 Zoom; P.r_u8 ((u8)Zoom); if (H_Parent() && H_Parent()->Remote()) { if (Zoom) OnZoomIn(); else OnZoomOut(); }; switch (wstate) { case eFire: case eFire2: case eSwitch: case eReload: { }break; default: { if (ammoType >= m_ammoTypes.size()) Msg("!! Weapon [%d], State - [%d]", ID(), wstate); else { m_ammoType = ammoType; SetAmmoElapsed((ammo_elapsed)); } }break; } VERIFY((u32)iAmmoElapsed == m_magazine.size()); }
void CWeaponMagazined::switch2_Empty() { OnZoomOut(); if (!TryReload()) { OnEmptyClick(); } else { inherited::FireEnd(); } }
void CWeapon::OnHiddenItem () { m_BriefInfo_CalcFrame = 0; if(IsGameTypeSingle()) SwitchState(eHiding); else SwitchState(eHidden); OnZoomOut(); inherited::OnHiddenItem (); m_set_next_ammoType_on_reload = undefined_ammo_type; }
void CWeapon::load(IReader &input_packet) { inherited::load (input_packet); load_data (iAmmoElapsed, input_packet); load_data (m_cur_scope, input_packet); load_data (m_flagsAddOnState, input_packet); UpdateAddonsVisibility (); load_data (m_ammoType, input_packet); load_data (m_zoom_params.m_bIsZoomModeNow,input_packet); if (m_zoom_params.m_bIsZoomModeNow) OnZoomIn(); else OnZoomOut(); load_data (m_bRememberActorNVisnStatus, input_packet); }
bool CWeapon::Action(u16 cmd, u32 flags) { if(inherited::Action(cmd, flags)) return true; switch(cmd) { case kWPN_FIRE: { //если оружие чем-то занято, то ничего не делать { if(IsPending()) return false; if(flags&CMD_START) FireStart (); else FireEnd (); }; } return true; case kWPN_NEXT: { return SwitchAmmoType(flags); } case kWPN_ZOOM: if(IsZoomEnabled()) { if(b_toggle_weapon_aim) { if(flags&CMD_START) { if(!IsZoomed()) { if(!IsPending()) { if(GetState()!=eIdle) SwitchState(eIdle); OnZoomIn (); } }else OnZoomOut (); } }else { if(flags&CMD_START) { if(!IsZoomed() && !IsPending()) { if(GetState()!=eIdle) SwitchState(eIdle); OnZoomIn (); } }else if(IsZoomed()) OnZoomOut (); } return true; }else return false; case kWPN_ZOOM_INC: case kWPN_ZOOM_DEC: if(IsZoomEnabled() && IsZoomed()) { if(cmd==kWPN_ZOOM_INC) ZoomInc(); else ZoomDec(); return true; }else return false; } return false; }
void CWeapon::Reload() { OnZoomOut(); }