2 Cafu Engine, http://www.cafu.de/
3 Copyright (c) Carsten Fuchs and other contributors.
4 This project is licensed under the terms of the MIT license.
7 #include "SoundShader.hpp"
9 #include "TextParser/TextParser.hpp"
12 SoundShaderT::SoundShaderT(const std::string
& SoundShaderName
)
13 : Name(SoundShaderName
),
17 InnerConeAngle(360.0f
),
18 OuterConeAngle(360.0f
),
20 MaxDistance(1000000000.0f
),
26 SoundGroup(SOUND_EFFECT
),
32 SoundShaderT::SoundShaderT(const std::string
& SoundShaderName
, TextParserT
& TextParser
, const std::string
& ModDir
)
33 : Name(SoundShaderName
),
37 InnerConeAngle(360.0f
),
38 OuterConeAngle(360.0f
),
40 MaxDistance(1000000000.0f
),
46 SoundGroup(SOUND_EFFECT
),
49 if (TextParser
.GetNextToken()!="{") throw TextParserT::ParseError();
53 std::string Token
=TextParser
.GetNextToken();
57 // End of sound shader definition.
60 else if (Token
=="AudioFile")
62 AudioFile
=ModDir
+TextParser
.GetNextToken();
64 else if (Token
=="MinDistance")
66 MinDistance
=(float)atof(TextParser
.GetNextToken().c_str());
68 else if (Token
=="LoadType")
70 std::string Value
=TextParser
.GetNextToken();
74 else if (Value
=="STREAM")
76 else if (Value
=="COMPRESSED")
81 else if (Token
=="Priority")
83 Priority
=(unsigned int)atoi(TextParser
.GetNextToken().c_str());
85 else if (Token
=="InnerVolume")
87 InnerVolume
=(float)atof(TextParser
.GetNextToken().c_str());
89 else if (Token
=="InnerConeAngle")
91 InnerConeAngle
=(float)atof(TextParser
.GetNextToken().c_str());
93 else if (Token
=="OuterConeAngle")
95 OuterConeAngle
=(float)atof(TextParser
.GetNextToken().c_str());
97 else if (Token
=="OuterVolume")
99 OuterVolume
=(float)atof(TextParser
.GetNextToken().c_str());
101 else throw TextParserT::ParseError(); // Unknown token!