////////////////////////////////////////////////////////////////////// // Name: Initialize() // Desc: Load all ingame sounds ////////////////////////////////////////////////////////////////////// bool CSounds::Initialize( CSdl *pSdl ) { ASSERT( pSdl != NULL ); this->_sdl = pSdl; #if defined(WITH_FMOD) || defined(WITH_SDLMIXER) String tmp (sys_datadir); #define LOAD_SOUND( container, name, buffered) \ do { \ tmp.append("/").append(name); \ sounds[container] = \ _sdl->LoadSound( tmp.c_str(), buffered ); \ if ( sounds[container] == -1 ) { \ LOG( "Failed to load " << name << " ! " ); \ return false; \ } \ tmp.resize(strlen(sys_datadir)); \ } while(0) #define LOAD_MUSIC( container, name) \ do { \ tmp.append("/").append(name); \ music[container] = \ _sdl->LoadSound( tmp.c_str(), false, true ); \ if ( music[container] == -1 ) { \ LOG( "Failed to load music " << name << " ! " ); \ return false; \ } \ tmp.resize(strlen(sys_datadir)); \ } while(0) LOAD_SOUND( SND_CRASHLIGHT1, "sound/crash3.wav", true ); LOAD_SOUND( SND_CRASHLIGHT2, "sound/crash2.wav", true ); LOAD_SOUND( SND_CRASHLIGHT3, "sound/crash1.wav", true ); LOAD_SOUND( SND_EXPLOSION1, "sound/exp.wav", true ); LOAD_SOUND( SND_SPLAT1, "sound/splat.wav", true ); LOAD_SOUND( SND_TIRES1, "sound/tires1.wav", true ); LOAD_SOUND( SND_TIRES2, "sound/tires2.wav", true ); LOAD_SOUND( SND_WARNING, "sound/warn.wav", true ); LOAD_SOUND( SND_MENU_NEXTCAR, "sound/snapshot.wav", true ); LOAD_SOUND( SND_MENU_HONK1, "sound/honk1.wav", true ); // LOAD_SOUND( SND_MENU_OVERBUTTON, "sound/mmh3.wav", false ); LOAD_SOUND( SND_MENU_CLICK, "sound/mmh.wav", true ); LOAD_MUSIC( MUS_MENU, "sound/seek.it" ); LOAD_MUSIC( MUS_INGAME1, "sound/inertia.it" ); LOAD_MUSIC( MUS_INGAME2, "sound/desert.it" ); LOAD_MUSIC( MUS_INGAME3, "sound/vixens.it" ); music_stopped = false; #undef LOAD_SOUND #undef LOAD_MUSIC #endif return true; }
void CBaseMonster::reload (LPCSTR section) { CCustomMonster::reload (section); if (!CCustomMonster::use_simplified_visual()) CStepManager::reload (section); movement().reload (section); // load base sounds LOAD_SOUND("sound_idle", SOUND_TYPE_MONSTER_TALKING, MonsterSound::eLowPriority, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundIdle); LOAD_SOUND("sound_distant_idle", SOUND_TYPE_MONSTER_TALKING, MonsterSound::eLowPriority+1, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundIdleDistant); LOAD_SOUND("sound_eat", SOUND_TYPE_MONSTER_TALKING, MonsterSound::eNormalPriority + 4, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundEat); LOAD_SOUND("sound_aggressive", SOUND_TYPE_MONSTER_ATTACKING, MonsterSound::eNormalPriority + 3, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundAggressive); LOAD_SOUND("sound_attack_hit", SOUND_TYPE_MONSTER_ATTACKING, MonsterSound::eHighPriority + 1, MonsterSound::eCaptureAllChannels, MonsterSound::eMonsterSoundAttackHit); LOAD_SOUND("sound_take_damage", SOUND_TYPE_MONSTER_INJURING, MonsterSound::eHighPriority, MonsterSound::eCaptureAllChannels, MonsterSound::eMonsterSoundTakeDamage); LOAD_SOUND("sound_strike", SOUND_TYPE_MONSTER_ATTACKING, MonsterSound::eNormalPriority, MonsterSound::eChannelIndependent, MonsterSound::eMonsterSoundStrike); LOAD_SOUND("sound_die", SOUND_TYPE_MONSTER_DYING, MonsterSound::eCriticalPriority, MonsterSound::eCaptureAllChannels, MonsterSound::eMonsterSoundDie); LOAD_SOUND("sound_die_in_anomaly", SOUND_TYPE_MONSTER_DYING, MonsterSound::eCriticalPriority, MonsterSound::eCaptureAllChannels, MonsterSound::eMonsterSoundDieInAnomaly); LOAD_SOUND("sound_threaten", SOUND_TYPE_MONSTER_ATTACKING, MonsterSound::eNormalPriority, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundThreaten); LOAD_SOUND("sound_steal", SOUND_TYPE_MONSTER_STEP, MonsterSound::eNormalPriority + 1, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundSteal); LOAD_SOUND("sound_panic", SOUND_TYPE_MONSTER_STEP, MonsterSound::eNormalPriority + 2, MonsterSound::eBaseChannel, MonsterSound::eMonsterSoundPanic); control().reload (section); // load monster type m_monster_type = eMonsterTypeUniversal; if (pSettings->line_exist(section,"monster_type")) { if (xr_strcmp(pSettings->r_string(section,"monster_type"), "indoor") == 0) m_monster_type = eMonsterTypeIndoor; else if (xr_strcmp(pSettings->r_string(section,"monster_type"), "outdoor") == 0) m_monster_type = eMonsterTypeOutdoor; } Home->load ("home"); // save panic_threshold m_default_panic_threshold = m_panic_threshold; }