コード例 #1
0
ファイル: CSounds.cpp プロジェクト: petarov/savagewheels
//////////////////////////////////////////////////////////////////////
// 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;
}
コード例 #2
0
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;
}