1 #include "xr_shaders_xrlc_lib.h" 2 #include "xr_file_system.h" 3 #include "xr_utils.h" 4 5 using namespace xray_re; 6 ~xr_shaders_xrlc_lib()7xr_shaders_xrlc_lib::~xr_shaders_xrlc_lib() 8 { 9 delete_elements(m_shaders); 10 } 11 operator ()read_shader_xrlc12struct read_shader_xrlc { void operator()(xr_shader_xrlc*& _s, xr_reader& r) { 13 xr_shader_xrlc* s = new xr_shader_xrlc; 14 _s = s; 15 size_t pos = r.tell(); 16 r.r_sz(s->name); 17 r.seek(pos + 128); 18 s->dummy = r.r_u32(); 19 s->vert_translucency = r.r_float(); 20 s->vert_ambient = r.r_float(); 21 s->lm_density = r.r_float(); 22 }}; 23 load(xr_reader & r)24void xr_shaders_xrlc_lib::load(xr_reader& r) 25 { 26 xr_assert(r.size()%SHADER_XRLC_SIZE == 0); 27 r.r_seq(r.size()/SHADER_XRLC_SIZE, m_shaders, read_shader_xrlc()); 28 } 29 load(const char * path,const char * name)30bool xr_shaders_xrlc_lib::load(const char* path, const char* name) 31 { 32 xr_file_system& fs = xr_file_system::instance(); 33 xr_reader* r = fs.r_open(path, name); 34 if (r == 0) 35 return false; 36 load(*r); 37 fs.r_close(r); 38 return true; 39 } 40