CExplosive::CExplosive(void) { m_fBlastHit = 50.f; m_fBlastRadius = 10.f; m_iFragsNum = 20; m_fFragsRadius = 30.f; m_fFragHit = 50; m_fUpThrowFactor = 0.f; m_eSoundExplode = ESoundTypes(SOUND_TYPE_WEAPON_SHOOTING); m_eHitTypeBlast = ALife::eHitTypeExplosion; m_eHitTypeFrag = ALife::eHitTypeFireWound; m_iCurrentParentID = 0xffff; // m_bReadyToExplode = false; // m_bExploding = false; // m_bExplodeEventSent = false; m_explosion_flags.assign(0); m_vExplodeSize.set (0.001f,0.001f,0.001f); m_bHideInExplosion = TRUE; m_fExplodeHideDurationMax = 0; m_bDynamicParticles = FALSE; m_pExpParticle = NULL; }
void CAI_Rat::feel_sound_new(CObject* who, int eType, CSound_UserDataPtr user_data, const Fvector &Position, float power) { if (!g_Alive()) return; if ((eType & SOUND_TYPE_WEAPON_SHOOTING) == SOUND_TYPE_WEAPON_SHOOTING) power = 1.f; if (power >= m_fSoundThreshold) { if ((this != who) && ((m_tLastSound.dwTime <= m_dwLastUpdateTime) || (m_tLastSound.fPower <= power))) { m_tLastSound.eSoundType = ESoundTypes(eType); m_tLastSound.dwTime = Device.dwTimeGlobal; m_tLastSound.fPower = power; m_tLastSound.tSavedPosition = Position; m_tLastSound.tpEntity = smart_cast<CEntityAlive*>(who); if ((eType & SOUND_TYPE_MONSTER_DYING) == SOUND_TYPE_MONSTER_DYING) m_fMorale += m_fMoraleDeathQuant; else if (((eType & SOUND_TYPE_WEAPON_SHOOTING) == SOUND_TYPE_WEAPON_SHOOTING) && !memory().enemy().selected()) m_fMorale += m_fMoraleFearQuant;///fDistance; else if ((eType & SOUND_TYPE_MONSTER_ATTACKING) == SOUND_TYPE_MONSTER_ATTACKING) m_fMorale += m_fMoraleSuccessAttackQuant;///fDistance; } } inherited::feel_sound_new (who,eType,user_data,Position,power); }
CWeaponPistol::CWeaponPistol(LPCSTR name) : CWeaponCustomPistol(name) { m_eSoundClose = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING /*| eSoundType*/); m_opened = false; m_bPending = false; SetSlot(PISTOL_SLOT); }
CWeaponMagazined::CWeaponMagazined(LPCSTR name, ESoundTypes eSoundType) : CWeapon(name) { m_eSoundShow = ESoundTypes(SOUND_TYPE_ITEM_TAKING | eSoundType); m_eSoundHide = ESoundTypes(SOUND_TYPE_ITEM_HIDING | eSoundType); m_eSoundShot = ESoundTypes(SOUND_TYPE_WEAPON_SHOOTING | eSoundType); m_eSoundEmptyClick = ESoundTypes(SOUND_TYPE_WEAPON_EMPTY_CLICKING | eSoundType); m_eSoundReload = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING | eSoundType); m_pSndShotCurrent = NULL; m_sSilencerFlameParticles = m_sSilencerSmokeParticles = NULL; m_bFireSingleShot = false; m_iShotNum = 0; m_iQueueSize = WEAPON_ININITE_QUEUE; m_bLockType = false; }
void CWeaponKnife::Load (LPCSTR section) { // verify class inherited::Load (section); fWallmarkSize = pSettings->r_float(section,"wm_size"); m_sounds.LoadSound(section,"snd_shoot" , "sndShot" , ESoundTypes(SOUND_TYPE_WEAPON_SHOOTING) ); knife_material_idx = GMLib.GetMaterialIdx(KNIFE_MATERIAL_NAME); }
CWeaponMagazined::CWeaponMagazined(LPCSTR name, ESoundTypes eSoundType) : CWeapon(name) { m_eSoundShow = ESoundTypes(SOUND_TYPE_ITEM_TAKING | eSoundType); m_eSoundHide = ESoundTypes(SOUND_TYPE_ITEM_HIDING | eSoundType); m_eSoundShot = ESoundTypes(SOUND_TYPE_WEAPON_SHOOTING | eSoundType); m_eSoundEmptyClick = ESoundTypes(SOUND_TYPE_WEAPON_EMPTY_CLICKING | eSoundType); m_eSoundReload = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING | eSoundType); m_eSoundSightsUp = ESoundTypes(SOUND_TYPE_WORLD_AMBIENT | eSoundType); //added by Daemonion for iron sight audio in weapon parameters - sights being raised m_eSoundSightsDown = ESoundTypes(SOUND_TYPE_WORLD_AMBIENT | eSoundType); //added by Daemonion for iron sight audio in weapon parameters - sights being lowered m_pSndShotCurrent = NULL; m_sSilencerFlameParticles = m_sSilencerSmokeParticles = NULL; m_bFireSingleShot = false; m_iShotNum = 0; m_iQueueSize = WEAPON_ININITE_QUEUE; m_bLockType = false; m_class_name = get_class_name<CWeaponMagazined>(this); }
void CWeaponKnife::Load (LPCSTR section) { // verify class inherited::Load (section); fWallmarkSize = pSettings->r_float(section,"wm_size"); // HUD :: Anims R_ASSERT (m_pHUD); animGet (mhud_idle, pSettings->r_string(*hud_sect,"anim_idle")); animGet (mhud_hide, pSettings->r_string(*hud_sect,"anim_hide")); animGet (mhud_show, pSettings->r_string(*hud_sect,"anim_draw")); animGet (mhud_attack, pSettings->r_string(*hud_sect,"anim_shoot1_start")); animGet (mhud_attack2, pSettings->r_string(*hud_sect,"anim_shoot2_start")); animGet (mhud_attack_e, pSettings->r_string(*hud_sect,"anim_shoot1_end")); animGet (mhud_attack2_e,pSettings->r_string(*hud_sect,"anim_shoot2_end")); #if defined(KNIFE_SPRINT_MOTION) animGet(mhud_idle_sprint, pSettings->r_string(*hud_sect,"anim_idle_sprint") ); #endif HUD_SOUND::LoadSound(section,"snd_shoot" , m_sndShot , ESoundTypes(SOUND_TYPE_WEAPON_SHOOTING) ); knife_material_idx = GMLib.GetMaterialIdx(KNIFE_MATERIAL_NAME); }
void CSoundMemoryManager::add (const CObject *object, int sound_type, const Fvector &position, float sound_power) { #ifndef SAVE_OWN_SOUNDS // we do not want to save our own sounds if (object && (m_object->ID() == object->ID())) return; #endif #ifndef SAVE_OWN_ITEM_SOUNDS // we do not want to save the sounds which was from the items we own if (object && object->H_Parent() && (object->H_Parent()->ID() == m_object->ID())) return; #endif #ifndef SAVE_NON_ALIVE_OBJECT_SOUNDS // we do not want to save sounds from the non-alive objects (?!) if (object && !m_object->memory().enemy().selected() && !smart_cast<const CEntityAlive*>(object)) return; #endif #ifndef SAVE_FRIEND_ITEM_SOUNDS // we do not want to save sounds from the teammates items CEntityAlive *me = m_object; if (object && object->H_Parent() && (me->tfGetRelationType(smart_cast<const CEntityAlive*>(object->H_Parent())) == ALife::eRelationTypeFriend)) return; #endif #ifndef SAVE_FRIEND_SOUNDS const CEntityAlive *entity_alive = smart_cast<const CEntityAlive*>(object); // we do not want to save sounds from the teammates if (entity_alive && me && (me->tfGetRelationType(entity_alive) == ALife::eRelationTypeFriend)) return; #endif #ifndef SAVE_VISIBLE_OBJECT_SOUNDS # ifdef SAVE_FRIEND_SOUNDS const CEntityAlive *entity_alive = smart_cast<const CEntityAlive*>(object); # endif // we do not save sounds from the objects we see (?!) if (m_object->memory().visual().visible_now(entity_alive)) return; #endif const CGameObject *game_object = smart_cast<const CGameObject*>(object); if (!game_object && object) return; const CGameObject *self = m_object; xr_vector<CSoundObject>::iterator J = std::find(m_sounds->begin(),m_sounds->end(),object_id(object)); if (m_sounds->end() == J) { CSoundObject sound_object; sound_object.fill (game_object,self,ESoundTypes(sound_type),sound_power,!m_stalker ? squad_mask_type(-1) : m_stalker->agent_manager().member().mask(m_stalker)); if (!game_object) sound_object.m_object_params.m_position = position; #ifdef USE_FIRST_GAME_TIME sound_object.m_first_game_time = Level().GetGameTime(); #endif #ifdef USE_FIRST_LEVEL_TIME sound_object.m_first_level_time = Device.dwTimeGlobal; #endif add (sound_object); } else { (*J).fill (game_object,self,ESoundTypes(sound_type),sound_power,(!m_stalker ? (*J).m_squad_mask.get() : ((*J).m_squad_mask.get() | m_stalker->agent_manager().member().mask(m_stalker)))); if (!game_object) (*J).m_object_params.m_position = position; } }
CGrenade::CGrenade(void) { m_eSoundCheckout = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING); }
CGrenade::CGrenade(void) { m_destroy_callback.clear(); m_eSoundCheckout = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING); }
CWeaponPistol::CWeaponPistol() { m_eSoundClose = ESoundTypes(SOUND_TYPE_WEAPON_RECHARGING); SetPending (FALSE); }