void CWeaponMagazined::state_Fire(float dt) { VERIFY(fTimeToFire > 0.f); Fvector p1, d; p1.set(get_LastFP()); d.set(get_LastFD()); if (!H_Parent()) return; CInventoryOwner* io = smart_cast<CInventoryOwner*>(H_Parent()); if (NULL == io->inventory().ActiveItem()) { Log("current_state", GetState()); Log("next_state", GetNextState()); Log("state_time", m_dwStateTime); Log("item_sect", cNameSect().c_str()); Log("H_Parent", H_Parent()->cNameSect().c_str()); } smart_cast<CEntity*> (H_Parent())->g_fireParams(this, p1, d); if (m_iShotNum == 0) { m_vStartPos = p1; m_vStartDir = d; }; VERIFY(!m_magazine.empty()); // Msg("%d && %d && (%d || %d) && (%d || %d)", !m_magazine.empty(), fTime<=0, IsWorking(), m_bFireSingleShot, m_iQueueSize < 0, m_iShotNum < m_iQueueSize); while (!m_magazine.empty() && fTime <= 0 && (IsWorking() || m_bFireSingleShot) && (m_iQueueSize < 0 || m_iShotNum < m_iQueueSize)) { m_bFireSingleShot = false; VERIFY(fTimeToFire > 0.f); fTime += fTimeToFire; ++m_iShotNum; OnShot(); static int i = 0; if (i || m_iShotNum > m_iShootEffectorStart) { // Do Weapon Callback. (Cribbledirge) StateSwitchCallback(GameObject::eOnActorWeaponFire, GameObject::eOnNPCWeaponFire); FireTrace(p1, d); } else { FireTrace(m_vStartPos, m_vStartDir); } } if (m_iShotNum == m_iQueueSize) m_bStopedAfterQueueFired = true; UpdateSounds(); }
void CHelicopter::MGunUpdateFire() { fShotTimeCounter -= Device.fTimeDelta; if (delta_t < 0){ delta_t = Device.fTimeGlobal; flag_by_fire = 0; } float time_f = Device.fTimeGlobal - delta_t; float fire_time; if(pSettings->line_exist(*cNameSect(),"fire_time")) fire_time = pSettings->r_float(*cNameSect(),"fire_time"); else fire_time = -1; float no_fire_time; if(pSettings->line_exist(*cNameSect(),"no_fire_time")) no_fire_time = pSettings->r_float(*cNameSect(),"no_fire_time"); else no_fire_time = -1; CShootingObject::UpdateFlameParticles(); CShootingObject::UpdateLight(); if(!IsWorking()) { clamp(fShotTimeCounter,0.0f, flt_max); return; } if(no_fire_time > 0 && fire_time > 0) { if (flag_by_fire==1 && time_f > fire_time){ delta_t = Device.fTimeGlobal; time_f = Device.fTimeGlobal - delta_t; flag_by_fire = 0; } if (time_f > no_fire_time && flag_by_fire ==0){ delta_t = Device.fTimeGlobal; time_f = Device.fTimeGlobal - delta_t; flag_by_fire = 1; } if(flag_by_fire ==0 && time_f < no_fire_time) return; } if(fShotTimeCounter<=0) { OnShot(); fShotTimeCounter += fOneShotTime; } }
int Visor::cQMainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: OnLayout(); break; case 1: OnSliderMoved((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: OnRotate(); break; case 3: OnMove(); break; case 4: OnWatchTimer(); break; case 5: OnShot(); break; default: ; } _id -= 6; } return _id; }
void CHelicopter::MGunUpdateFire() { fTime -= Device.fTimeDelta; CShootingObject::UpdateFlameParticles(); CShootingObject::UpdateLight(); if(!IsWorking()) { if(fTime<0) fTime = 0.f; return; } if(fTime<=0) { OnShot(); fTime += fTimeToFire; } }
void CWeaponStatMgun::UpdateFire() { fShotTimeCounter -= Device.fTimeDelta; inheritedShooting::UpdateFlameParticles(); inheritedShooting::UpdateLight(); if(!IsWorking()){ clamp(fShotTimeCounter,0.0f, flt_max); return; } if(fShotTimeCounter<=0) { OnShot (); fShotTimeCounter += fOneShotTime; }else { angle_lerp (m_dAngle.x,0.f,5.f,Device.fTimeDelta); angle_lerp (m_dAngle.y,0.f,5.f,Device.fTimeDelta); } }
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; } }