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