Пример #1
0
void C_ASW_Snow_Volume::Spawn()
{
	SetSolid( SOLID_BBOX );
	SetModel( STRING( GetModelName() ) );    // set size and link into world

	if (g_ASWSnowVolumes.Count() <= 0)
	{
		// we're the first snow volume, so create our snow emitter
		if (!g_hSnowEmitter.IsValid())
		{
			Msg("Created snow emitter\n");
			g_hSnowEmitter = CASWSnowEmitter::Create( "asw_emitter" );
			if ( g_hSnowEmitter.IsValid() )
			{
				if (m_iSnowType == 0)
					g_hSnowEmitter->UseTemplate("snow2");
				else
				{
					g_hSnowEmitter->UseTemplate("snow3");
					g_hSnowEmitter->m_bWrapParticlesToSpawnBounds = true;
				}
				g_hSnowEmitter->SetActive(true);			
			}
			else
			{
				Msg("Error spawning snow emitter\n");
			}
			// only get clouds for heavy snow
			if (m_iSnowType == 1)
			{
				g_hSnowCloudEmitter = CASWSnowEmitter::Create( "asw_emitter" );
				if ( g_hSnowCloudEmitter.IsValid() )
				{			
					g_hSnowCloudEmitter->UseTemplate("snowclouds");
					g_hSnowCloudEmitter->SetActive(true);
					g_hSnowEmitter->m_bWrapParticlesToSpawnBounds = true;
				}
				else
				{
					Msg("Error spawning snow cloud emitter\n");
				}
			}
		}
	}
	g_ASWSnowVolumes.AddToTail(this);

	BaseClass::Spawn();

	m_takedamage = DAMAGE_NO;	
}