@@ -176,6 +176,12 @@ public class SMSStream
176176 public float Volume = 1.0f ;
177177 public List < VolumeCurve > VolumeCurves = new List < VolumeCurve > ( ) ;
178178 public FrequencyCurve FrequencyCurve ;
179+ public bool [ ] Season ;
180+ public bool [ ] Weather ;
181+ public int [ ] TimeInterval ;
182+ public List < int [ ] > TimeIntervals ;
183+
184+
179185
180186 public SMSStream ( STFReader stf )
181187 {
@@ -186,6 +192,42 @@ public SMSStream(STFReader stf)
186192 new STFReader . TokenProcessor ( "volumecurve" , ( ) => { VolumeCurves . Add ( new VolumeCurve ( stf ) ) ; } ) ,
187193 new STFReader . TokenProcessor ( "frequencycurve" , ( ) => { FrequencyCurve = new FrequencyCurve ( stf ) ; } ) ,
188194 new STFReader . TokenProcessor ( "volume" , ( ) => { Volume = stf . ReadFloatBlock ( STFReader . UNITS . None , Volume ) ; } ) ,
195+ new STFReader . TokenProcessor ( "ortstimeofday" , ( ) => {
196+ if ( TimeIntervals == null )
197+ TimeIntervals = new List < int [ ] > ( ) ;
198+ var timeInterval = new int [ 2 ] ;
199+ stf . MustMatch ( "(" ) ;
200+ timeInterval [ 0 ] = stf . ReadInt ( null ) ;
201+ timeInterval [ 1 ] = stf . ReadInt ( null ) ;
202+ TimeIntervals . Add ( timeInterval ) ;
203+ stf . SkipRestOfBlock ( ) ;
204+ } ) ,
205+ new STFReader . TokenProcessor ( "ortsseason" , ( ) => {
206+ Season = new bool [ 4 ] ;
207+ stf . MustMatch ( "(" ) ;
208+ stf . ParseBlock ( new STFReader . TokenProcessor [ ] {
209+ new STFReader . TokenProcessor ( "spring" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
210+ Season [ ( int ) SeasonType . Spring ] = true ; } ) ,
211+ new STFReader . TokenProcessor ( "summer" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
212+ Season [ ( int ) SeasonType . Summer ] = true ; } ) ,
213+ new STFReader . TokenProcessor ( "autumn" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
214+ Season [ ( int ) SeasonType . Autumn ] = true ; } ) ,
215+ new STFReader . TokenProcessor ( "winter" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
216+ Season [ ( int ) SeasonType . Winter ] = true ; } ) ,
217+ } ) ;
218+ } ) ,
219+ new STFReader . TokenProcessor ( "ortsweather" , ( ) => {
220+ Weather = new bool [ 3 ] ;
221+ stf . MustMatch ( "(" ) ;
222+ stf . ParseBlock ( new STFReader . TokenProcessor [ ] {
223+ new STFReader . TokenProcessor ( "clear" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
224+ Weather [ ( int ) WeatherType . Clear ] = true ; } ) ,
225+ new STFReader . TokenProcessor ( "snow" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
226+ Weather [ ( int ) WeatherType . Snow ] = true ; } ) ,
227+ new STFReader . TokenProcessor ( "rain" , ( ) => { if ( stf . ReadBoolBlock ( true ) )
228+ Weather [ ( int ) WeatherType . Rain ] = true ; } ) ,
229+ } ) ;
230+ } ) ,
189231 } ) ;
190232 //if (Volume > 1) Volume /= 100f;
191233 }
0 commit comments