void CCustomDetector::OnStateSwitch(u32 S) { inherited::OnStateSwitch(S); switch(S) { case eShowing: { g_player_hud->attach_item (this); m_sounds.PlaySound ("sndShow", Fvector().set(0,0,0), this, true, false); PlayHUDMotion (m_bFastAnimMode?"anm_show_fast":"anm_show", TRUE, this, GetState()); SetPending (TRUE); }break; case eHiding: { m_sounds.PlaySound ("sndHide", Fvector().set(0,0,0), this, true, false); PlayHUDMotion (m_bFastAnimMode?"anm_hide_fast":"anm_hide", TRUE, this, GetState()); SetPending (TRUE); }break; case eIdle: { PlayAnimIdle (); SetPending (FALSE); }break; } }
void CWeaponMagazinedWGrenade::OnH_B_Independent(bool just_before_destroy) { inherited::OnH_B_Independent(just_before_destroy); SetPending (FALSE); if (m_bGrenadeMode) { SetState ( eIdle ); SetPending (FALSE); } }
void CWeaponKnife::switch2_Idle () { VERIFY(GetState()==eIdle); PlayAnimIdle (); SetPending (FALSE); }
void CWeapon::SetDefaults() { SetPending (FALSE); m_flags.set (FUsingCondition, TRUE); bMisfire = false; m_flagsAddOnState = 0; m_zoom_params.m_bIsZoomModeNow = false; }
void CWeaponKnife::switch2_Attacking (u32 state) { if(IsPending()) return; if(state==eFire) PlayHUDMotion("anm_attack", FALSE, this, state); else //eFire2 PlayHUDMotion("anm_attack2", FALSE, this, state); SetPending (TRUE); }
void CWeaponMagazinedWGrenade::switch2_Reload() { VERIFY(GetState()==eReload); if(m_bGrenadeMode) { PlaySound("sndReloadG", get_LastFP2()); PlayHUDMotion("anm_reload_g", FALSE, this, GetState()); SetPending (TRUE); } else inherited::switch2_Reload(); }
BOOL CWeaponMagazinedWGrenade::net_Spawn(CSE_Abstract* DC) { CSE_ALifeItemWeapon* const weapon = smart_cast<CSE_ALifeItemWeapon*>(DC); R_ASSERT (weapon); if ( IsGameTypeSingle() ) { inherited::net_Spawn_install_upgrades (weapon->m_upgrades); } BOOL l_res = inherited::net_Spawn(DC); UpdateGrenadeVisibility(!!iAmmoElapsed); SetPending (FALSE); iAmmoElapsed2 = weapon->a_elapsed_grenades.grenades_count; m_ammoType2 = weapon->a_elapsed_grenades.grenades_type; m_DefaultCartridge2.Load(*m_ammoTypes2[m_ammoType2], u8(m_ammoType2)); if (!IsGameTypeSingle()) { if (!m_bGrenadeMode && IsGrenadeLauncherAttached() && !getRocketCount() && iAmmoElapsed2) { m_magazine2.push_back(m_DefaultCartridge2); shared_str grenade_name = m_DefaultCartridge2.m_ammoSect; shared_str fake_grenade_name = pSettings->r_string(grenade_name, "fake_grenade_name"); CRocketLauncher::SpawnRocket(*fake_grenade_name, this); } }else { xr_vector<CCartridge>* pM = NULL; bool b_if_grenade_mode = (m_bGrenadeMode && iAmmoElapsed && !getRocketCount()); if(b_if_grenade_mode) pM = &m_magazine; bool b_if_simple_mode = (!m_bGrenadeMode && m_magazine2.size() && !getRocketCount()); if(b_if_simple_mode) pM = &m_magazine2; if(b_if_grenade_mode || b_if_simple_mode) { shared_str fake_grenade_name = pSettings->r_string(pM->back().m_ammoSect, "fake_grenade_name"); CRocketLauncher::SpawnRocket(*fake_grenade_name, this); } } return l_res; }
void CWeapon::OnH_B_Independent (bool just_before_destroy) { RemoveShotEffector (); inherited::OnH_B_Independent(just_before_destroy); FireEnd (); SetPending (FALSE); SwitchState (eHidden); m_strapped_mode = false; m_zoom_params.m_bIsZoomModeNow = false; UpdateXForm (); }
void CWeapon::SendHiddenItem() { if (!CHudItem::object().getDestroy() && m_pInventory) { // !!! Just single entry for given state !!! NET_Packet P; CHudItem::object().u_EventGen (P,GE_WPN_STATE_CHANGE,CHudItem::object().ID()); P.w_u8 (u8(eHiding)); P.w_u8 (u8(m_sub_state)); P.w_u8 (m_ammoType); P.w_u8 (u8(iAmmoElapsed & 0xff)); P.w_u8 (m_set_next_ammoType_on_reload); CHudItem::object().u_EventSend (P, net_flags(TRUE, TRUE, FALSE, TRUE)); SetPending (TRUE); } }
bool CWeaponMagazinedWGrenade::SwitchMode() { bool bUsefulStateToSwitch = ((eIdle==GetState())||(eHidden==GetState())||(eMisfire==GetState())||(eMagEmpty==GetState())) && (!IsPending()); if(!bUsefulStateToSwitch) return false; if(!IsGrenadeLauncherAttached()) return false; SetPending (TRUE); PerformSwitchGL (); PlaySound ("sndSwitch", get_LastFP()); PlayAnimModeSwitch (); m_dwAmmoCurrentCalcFrame = 0; return true; }
void CWeapon::signal_HideComplete() { if(H_Parent()) setVisible (FALSE); SetPending (FALSE); }
void wxlCanObj::AddObject( wxlCanObj *canobj ) { canobj->SetCanvas( m_canvas ); m_objects.Append( canobj ); SetPending( true ); }
void wxlCanObjAddScript::SetScript( const wxString& script ) { m_script = script; SetPending( true ); }
void CWeaponKnife::switch2_Hidden() { signal_HideComplete (); SetPending (FALSE); }
CWeaponPistol::CWeaponPistol() { m_eSoundClose = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING); SetPending (FALSE); }