diff options
Diffstat (limited to 'src/core/entityglobe.cc')
-rw-r--r-- | src/core/entityglobe.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/core/entityglobe.cc b/src/core/entityglobe.cc new file mode 100644 index 0000000..c27e05c --- /dev/null +++ b/src/core/entityglobe.cc @@ -0,0 +1,68 @@ +/* + core/entityglobe.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2. +*/ + +#include <vector> +#include <iomanip> +#include <cstring> + +#include "core/entityglobe.h" + +namespace core +{ + +/*----- EntityGlobe ------------------------------------------------ */ + +EntityGlobe::EntityGlobe() : Entity() +{ + entity_texture_id = 0; + entity_corona_id = 0; + entity_rotationspeed = 0; + set_shape(Sphere); +} + +EntityGlobe::EntityGlobe(std::istream & is) : Entity(is) +{ + entity_texture_id = 0; + entity_corona_id = 0; + entity_rotationspeed = 0; + set_shape(Sphere); +} + +EntityGlobe::~EntityGlobe() +{ +} + +void EntityGlobe::serialize_server_create(std::ostream & os) const +{ + Entity::serialize_server_create(os); + os << entity_rotationspeed << " \"" << texturename() << "\" \"" << coronaname() << "\" "; +} + +void EntityGlobe::receive_server_create(std::istream &is) +{ + Entity::receive_server_create(is); + + is >> entity_rotationspeed; + + std::string n; + char c; + + // read texture name + while ((is.get(c)) && (c != '"')); + while ((is.get(c)) && (c != '"')) + n += c; + + entity_texturename.assign(n); + + // read corona name + n.clear(); + while ((is.get(c)) && (c != '"')); + while ((is.get(c)) && (c != '"')) + n += c; + entity_coronaname.assign(n); +} + +} // namespace core |