1 #ifndef __GNUC__
2 #pragma once
3 #endif
4 #ifndef __XR_LEVEL_SND_STATIC_H__
5 #define __XR_LEVEL_SND_STATIC_H__
6 
7 #include <string>
8 #include <vector>
9 #include "xr_vector2.h"
10 #include "xr_vector3.h"
11 
12 namespace xray_re {
13 
14 struct sound_src_data {
15 	std::string	name;
16 	fvector3	position;
17 	float		volume;
18 	float		freq;
19 	i32vector2	active_time;
20 	i32vector2	play_time;
21 	i32vector2	pause_time;
22 };
23 
24 TYPEDEF_STD_VECTOR_PTR(sound_src_data)
25 
26 class xr_reader;
27 class xr_writer;
28 class xr_ini_file;
29 
30 class xr_level_snd_static {
31 public:
32 			xr_level_snd_static();
33 			xr_level_snd_static(xr_reader& r);
34 			xr_level_snd_static(const xr_ini_file& ini);
35 	virtual		~xr_level_snd_static();
36 
37 	void		load(const xr_ini_file& ini);
38 	void		load(xr_reader& r);
39 	void		save(xr_writer& w) const;
40 
41 	const sound_src_data_vec&	sound_srcs() const;
42 
43 private:
44 	sound_src_data_vec	m_sound_srcs;
45 };
46 
xr_level_snd_static()47 inline xr_level_snd_static::xr_level_snd_static() {}
xr_level_snd_static(xr_reader & r)48 inline xr_level_snd_static::xr_level_snd_static(xr_reader& r) { load(r); }
xr_level_snd_static(const xr_ini_file & ini)49 inline xr_level_snd_static::xr_level_snd_static(const xr_ini_file& ini) { load(ini); }
sound_srcs()50 inline const sound_src_data_vec& xr_level_snd_static::sound_srcs() const { return m_sound_srcs; }
51 
52 } // end of namespace xray_re
53 
54 #endif
55