1 //Simplified BSD License (BSD-2-Clause)
2 //
3 //Copyright (c) 2020, Christopher Lees, The OpenBVE Project
4 //
5 //Redistribution and use in source and binary forms, with or without
6 //modification, are permitted provided that the following conditions are met:
7 //
8 //1. Redistributions of source code must retain the above copyright notice, this
9 //   list of conditions and the following disclaimer.
10 //2. Redistributions in binary form must reproduce the above copyright notice,
11 //   this list of conditions and the following disclaimer in the documentation
12 //   and/or other materials provided with the distribution.
13 //
14 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 //DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 //ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 
25 using OpenBveApi.Math;
26 
27 namespace MechanikRouteParser
28 {
29 	/// <summary>A train triggered sound event</summary>
30 	internal class SoundEvent
31 	{
32 		/// <summary>The sound index from dzwieki.dat</summary>
33 		internal readonly int SoundIndex;
34 		/// <summary>Whether this plays looped until stopped</summary>
35 		internal readonly bool Looped;
36 		/// <summary>Whether this is speed dependant</summary>
37 		internal readonly bool SpeedDependant;
38 		/// <summary>The volume of the sound</summary>
39 		internal readonly int Volume;
40 		/// <summary>The sound's position vector</summary>
41 		internal readonly Vector3 Position;
42 
SoundEvent(int soundIndex, Vector3 position, bool looped, bool speedDependant, int volume)43 		internal SoundEvent(int soundIndex, Vector3 position, bool looped, bool speedDependant, int volume)
44 		{
45 			Position = position;
46 			SoundIndex = soundIndex;
47 			Looped = looped;
48 			SpeedDependant = speedDependant;
49 			Volume = volume;
50 		}
51 	}
52 }
53