コード例 #1
0
 private static void PlaySound(ref int SoundSourceIndex, bool ReturnHandle, int SoundBufferIndex, TrainManager.Train Train, int CarIndex, World.Vector3D Position, Importance Important, bool Looped, double Pitch, double Gain)
 {
     if (OpenAlContext != IntPtr.Zero)
     {
         if (Game.MinimalisticSimulation & Important == Importance.DontCare | SoundBufferIndex == -1)
         {
             return;
         }
         if (SoundSourceIndex >= 0)
         {
             StopSound(ref SoundSourceIndex);
         }
         int i;
         for (i = 0; i < SoundSources.Length; i++)
         {
             if (SoundSources[i] == null)
             {
                 break;
             }
         }
         if (i >= SoundSources.Length)
         {
             Array.Resize <SoundSource>(ref SoundSources, SoundSources.Length << 1);
         }
         SoundSources[i]                   = new SoundSourceX();
         SoundSources[i].Position          = Position;
         SoundSources[i].OpenAlPosition    = new float[] { 0.0f, 0.0f, 0.0f };
         SoundSources[i].OpenAlVelocity    = new float[] { 0.0f, 0.0f, 0.0f };
         SoundSources[i].SoundBufferIndex  = SoundBufferIndex;
         SoundSources[i].Radius            = SoundBuffers[SoundBufferIndex].Radius;
         SoundSources[i].Pitch             = (float)Pitch;
         SoundSources[i].Gain              = (float)Gain;
         SoundSources[i].Looped            = Looped;
         SoundSources[i].Suppressed        = true;
         SoundSources[i].FinishedPlaying   = false;
         SoundSources[i].Train             = Train;
         SoundSources[i].CarIndex          = CarIndex;
         SoundSources[i].OpenAlSourceIndex = new OpenAlIndex(0, false);
         SoundSources[i].HasHandle         = ReturnHandle;
         SoundSourceIndex                  = i;
     }
 }
コード例 #2
0
ファイル: SoundManager.cs プロジェクト: JakubVanek/openBVE-1
		private static void PlaySound(ref int SoundSourceIndex, bool ReturnHandle, int SoundBufferIndex, TrainManager.Train Train, int CarIndex, World.Vector3D Position, Importance Important, bool Looped, double Pitch, double Gain) {
			if (OpenAlContext != IntPtr.Zero) {
				if (Game.MinimalisticSimulation & Important == Importance.DontCare | SoundBufferIndex == -1) {
					return;
				}
				if (SoundSourceIndex >= 0) {
					StopSound(ref SoundSourceIndex);
				}
				int i;
				for (i = 0; i < SoundSources.Length; i++) {
					if (SoundSources[i] == null) break;
				}
				if (i >= SoundSources.Length) {
					Array.Resize<SoundSource>(ref SoundSources, SoundSources.Length << 1);
				}
				SoundSources[i] = new SoundSourceX();
				SoundSources[i].Position = Position;
				SoundSources[i].OpenAlPosition = new float[] { 0.0f, 0.0f, 0.0f };
				SoundSources[i].OpenAlVelocity = new float[] { 0.0f, 0.0f, 0.0f };
				SoundSources[i].SoundBufferIndex = SoundBufferIndex;
				SoundSources[i].Radius = SoundBuffers[SoundBufferIndex].Radius;
				SoundSources[i].Pitch = (float)Pitch;
				SoundSources[i].Gain = (float)Gain;
				SoundSources[i].Looped = Looped;
				SoundSources[i].Suppressed = true;
				SoundSources[i].FinishedPlaying = false;
				SoundSources[i].Train = Train;
				SoundSources[i].CarIndex = CarIndex;
				SoundSources[i].OpenAlSourceIndex = new OpenAlIndex(0, false);
				SoundSources[i].HasHandle = ReturnHandle;
				SoundSourceIndex = i;
			}
		}