1 #include "xr_scene.h"
2 #include "xr_scene_particles.h"
3 #include "xr_reader.h"
4 #include "xr_writer.h"
5
6 using namespace xray_re;
7
xr_particle_object(xr_scene & scene)8 xr_particle_object::xr_particle_object(xr_scene& scene):
9 xr_custom_object(scene, TOOLS_CLASS_PARTICLE) {}
10
~xr_particle_object()11 xr_particle_object::~xr_particle_object() {}
12
load(xr_reader & r)13 void xr_particle_object::load(xr_reader& r)
14 {
15 uint16_t version;
16 if (!r.r_chunk<uint16_t>(CPSOBJECT_CHUNK_VERSION, version))
17 xr_not_expected();
18 xr_assert(version == CPSOBJECT_VERSION);
19 xr_custom_object::load(r);
20 if (!r.find_chunk(CPSOBJECT_CHUNK_REFERENCE))
21 xr_not_expected();
22 r.r_sz(m_reference);
23 r.debug_find_chunk();
24 }
25
save_v12(xr_ini_writer * w) const26 void xr_particle_object::save_v12(xr_ini_writer* w) const
27 {
28 xr_custom_object::save_v12(w);
29
30 w->write("game_type", 65535);
31 w->write("ref_name", m_reference, false);
32 w->write("version", CPSOBJECT_VERSION_V12);
33 }
34
save(xr_writer & w) const35 void xr_particle_object::save(xr_writer& w) const
36 {
37 xr_custom_object::save(w);
38 w.w_chunk<uint16_t>(CPSOBJECT_CHUNK_VERSION, CPSOBJECT_VERSION);
39 w.w_chunk(CPSOBJECT_CHUNK_REFERENCE, m_reference);
40 }
41
42 ////////////////////////////////////////////////////////////////////////////////
43
xr_scene_particles(xr_scene & scene)44 xr_scene_particles::xr_scene_particles(xr_scene& scene):
45 xr_scene_objects(scene, "ps.part", SCENE_CHUNK_PARTICLES) {}
46
~xr_scene_particles()47 xr_scene_particles::~xr_scene_particles() {}
48
load(xr_reader & r)49 void xr_scene_particles::load(xr_reader& r)
50 {
51 uint16_t version = 0;
52 r.r_chunk<uint16_t>(TOOLS_CHUNK_VERSION, version);
53 xr_assert(version == 0);
54 xr_scene_objects::load(r);
55 }
56
save(xr_writer & w) const57 void xr_scene_particles::save(xr_writer& w) const
58 {
59 xr_scene_objects::save(w);
60 w.w_chunk<uint16_t>(TOOLS_CHUNK_VERSION, 0);
61 }
62
save_v12(xr_ini_writer * w) const63 void xr_scene_particles::save_v12(xr_ini_writer* w) const
64 {
65 w->open_section("main");
66 w->write("objects_count", this->objects().size());
67 w->write("version", 0);
68 w->close_section();
69
70 scene().write_revision(w);
71
72 xr_scene_objects::save_v12(w);
73 }
74