void CWeaponStatMgun::Action (u16 id, u32 flags) { inheritedHolder::Action(id,flags); switch (id){ case kWPN_FIRE:{ if(flags==CMD_START) FireStart (); else FireEnd (); }break; } }
void CWeaponStatMgun::net_Import(NET_Packet& P) // import from server { inheritedPH::net_Import (P); u8 state = P.r_u8(); load_data (m_destEnemyDir, P); if(TRUE==IsWorking()&&!state) FireEnd (); if(FALSE==IsWorking()&&state) FireStart (); }
void CWeaponStatMgun::OnKeyboardPress (int dik) { if (Remote()) return; switch (dik) { case kWPN_FIRE: FireStart(); break; }; }
void CWeaponMagazined::switch2_Fire() { CInventoryOwner* io = smart_cast<CInventoryOwner*>(H_Parent()); CInventoryItem* ii = smart_cast<CInventoryItem*>(this); #ifdef DEBUG VERIFY2(io, make_string("no inventory owner, item %s", *cName())); if (ii != io->inventory().ActiveItem()) Msg("! not an active item, item %s, owner %s, active item %s", *cName(), *H_Parent()->cName(), io->inventory().ActiveItem() ? *io->inventory().ActiveItem()->object().cName() : "no_active_item"); if (!(io && (ii == io->inventory().ActiveItem()))) { CAI_Stalker *stalker = smart_cast<CAI_Stalker*>(H_Parent()); if (stalker) { stalker->planner().show(); stalker->planner().show_current_world_state(); stalker->planner().show_target_world_state(); } } #else if (!io) return; #endif // DEBUG // // VERIFY2( // io && (ii == io->inventory().ActiveItem()), // make_string( // "item[%s], parent[%s]", // *cName(), // H_Parent() ? *H_Parent()->cName() : "no_parent" // ) // ); m_bStopedAfterQueueFired = false; m_bFireSingleShot = true; m_iShotNum = 0; if ((OnClient() || Level().IsDemoPlay()) && !IsWorking()) FireStart(); /* if(SingleShotMode()) { m_bFireSingleShot = true; bWorking = false; }*/ }
void CCarWeapon::Action (int id, u32 flags) { switch (id){ case eWpnFire:{ if(flags==1) FireStart (); else FireEnd (); }break; case eWpnActivate:{ if(flags==1) m_bActive = true; else {m_bActive = false; FireEnd();} }break; case eWpnAutoFire:{ if(flags==1) m_bAutoFire = true; else m_bAutoFire = false; }break; case eWpnToDefaultDir:{ SetParam(eWpnDesiredDir,Fvector2().set(m_bind_y_rot,m_bind_x_rot)); }break; } }
void CCarWeapon::UpdateFire() { fTime -= Device.fTimeDelta; inheritedShooting::UpdateFlameParticles(); inheritedShooting::UpdateLight(); if(m_bAutoFire){ if(m_allow_fire){ FireStart(); }else FireEnd(); }; if(!IsWorking()){ if(fTime<0) fTime = 0.f; return; } if(fTime<=0){ OnShot(); fTime += fTimeToFire; } }
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; }