//---------------------------------------------------- bool ESoundSource::LoadLTX(CInifile& ini, LPCSTR sect_name) { u32 version = ini.r_u32(sect_name, "version"); if(version!=SOUND_SOURCE_VERSION) { ELog.Msg( mtError, "ESoundSource: Unsupported version."); return false; } inherited::LoadLTX (ini, sect_name); m_Type = ini.r_u32 (sect_name, "snd_type"); m_WAVName = ini.r_string (sect_name, "snd_name"); m_Flags.assign (ini.r_u32 (sect_name, "flags")); m_Params.position = ini.r_fvector3 (sect_name, "snd_position"); m_Params.volume = ini.r_float (sect_name, "volume"); m_Params.freq = ini.r_float (sect_name, "freq"); m_Params.min_distance=ini.r_float (sect_name, "min_dist"); m_Params.max_distance= ini.r_float (sect_name, "max_dist"); m_Params.max_ai_distance=ini.r_float (sect_name, "max_ai_dist"); m_RandomPause = ini.r_fvector2 (sect_name, "random_pause"); m_ActiveTime = ini.r_fvector2 (sect_name, "active_time"); m_PlayTime = ini.r_fvector2 (sect_name, "play_time"); ResetSource (); switch (m_Type) { case stStaticSource: if (m_Flags.is(flPlaying)) Play(); //. if (m_Flags.is(flSimulating)) Simulate(); break; default: THROW; } return true; }
void ESoundSource::SetSourceWAV(LPCSTR fname) { m_WAVName = fname; ResetSource (); }
void ESoundSource::OnChangeWAV (PropValue* prop) { BOOL bPlay = !!m_Source._feedback(); ResetSource (); if (bPlay) Play(); }
bool ESoundSource::Load(IReader& F) { u32 version = 0; if(F.r_chunk(SOUND_CHUNK_VERSION,&version)){ if(version!=SOUND_SOURCE_VERSION){ ELog.Msg( mtError, "ESoundSource: Unsupported version."); return false; } }else return false; inherited::Load (F); R_ASSERT(F.find_chunk(SOUND_CHUNK_TYPE)); m_Type = ESoundType(F.r_u32()); R_ASSERT(F.find_chunk(SOUND_CHUNK_SOURCE_NAME)); F.r_stringZ (m_WAVName); if (F.find_chunk(SOUND_CHUNK_SOURCE_PARAMS3)){ m_Params.base_volume = 1.f; F.r_fvector3 (m_Params.position); m_Params.volume = F.r_float(); m_Params.freq = F.r_float(); m_Params.min_distance = F.r_float(); m_Params.max_distance = F.r_float(); m_Params.max_ai_distance= F.r_float(); }else if (F.find_chunk(SOUND_CHUNK_SOURCE_PARAMS2)){ m_Params.base_volume = 1.f; F.r_fvector3 (m_Params.position); m_Params.volume = F.r_float(); m_Params.freq = F.r_float(); m_Params.min_distance = F.r_float(); m_Params.max_distance = F.r_float(); m_Params.max_ai_distance= F.r_float(); }else{ if (!F.find_chunk(SOUND_CHUNK_SOURCE_PARAMS)){ ELog.DlgMsg( mtError, "ESoundSource: Can't load Sound Source '%s'. Unsupported version.",*m_WAVName); return false; } m_Params.base_volume = 1.f; F.r_fvector3 (m_Params.position); m_Params.volume = F.r_float(); m_Params.freq = F.r_float(); m_Params.min_distance = F.r_float(); m_Params.max_distance = F.r_float(); m_Params.max_ai_distance= m_Params.max_distance; } if(F.find_chunk(SOUND_CHUNK_SOURCE_FLAGS)) F.r (&m_Flags,sizeof(m_Flags)); if(F.find_chunk(SOUND_CHUNK_GAME_PARAMS)){ F.r_fvector2 (m_RandomPause); F.r_fvector2 (m_ActiveTime); F.r_fvector2 (m_PlayTime); } ResetSource (); switch (m_Type){ case stStaticSource: if (m_Flags.is(flPlaying)) Play(); if (m_Flags.is(flSimulating)) Simulate(); break; default: THROW; } return true; }
void Sic::Reset() { EditorialElement::Reset(); ResetSource(); }
AttSource::AttSource() : Att() { ResetSource(); }