1 #ifndef __GNUC__
2 #pragma once
3 #endif
4 #ifndef __XR_LEVEL_VISUALS_H__
5 #define __XR_LEVEL_VISUALS_H__
6 
7 #include <vector>
8 #include "xr_types.h"
9 
10 namespace xray_re {
11 
12 class xr_ogf;
13 class xr_level_geom;
14 class xr_image;
15 class xr_reader;
16 class xr_writer;
17 
18 class xr_level_visuals {
19 public:
20 				xr_level_visuals(uint32_t xrlc_version, xr_reader& r,
21 						const xr_level_geom* geom);
22 	virtual			~xr_level_visuals();
23 
24 	void			load(uint32_t xrlc_version, xr_reader& r, const xr_level_geom* geom);
25 
26 	std::vector<xr_ogf*>&		ogfs();
27 	const std::vector<xr_ogf*>&	ogfs() const;
28 	const xr_image*			lods() const;
29 	const xr_image*			lods_nm() const;
30 
31 private:
32 //	void			load_d3d7(xr_reader& r, const xr_level_geom* geom);
33 //	void			load_d3d9(xr_reader& r, const xr_level_geom* geom);
34 //	void			load_1865(xr_reader& r, const xr_level_geom* geom);
35 	void load_ogfs(xr_reader& r, const xr_level_geom* geom);
36 private:
37 	std::vector<xr_ogf*>	m_ogfs;
38 	xr_image*		m_lods;
39 	xr_image*		m_lods_nm;
40 };
41 
xr_level_visuals(uint32_t xrlc_version,xr_reader & r,const xr_level_geom * geom)42 inline xr_level_visuals::xr_level_visuals(uint32_t xrlc_version, xr_reader& r,
43 		const xr_level_geom* geom)
44 {
45 	load(xrlc_version, r, geom);
46 }
47 
ogfs()48 inline std::vector<xr_ogf*>& xr_level_visuals::ogfs() { return m_ogfs; }
ogfs()49 inline const std::vector<xr_ogf*>& xr_level_visuals::ogfs() const { return m_ogfs; }
50 
51 } // end of namespace xray_re
52 
53 #endif
54