Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/parser.cc')
-rw-r--r--src/core/parser.cc35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/core/parser.cc b/src/core/parser.cc
index 0cee506..fcca2e1 100644
--- a/src/core/parser.cc
+++ b/src/core/parser.cc
@@ -13,11 +13,18 @@ namespace core {
bool Parser::got_entity_key(filesystem::IniFile &inifile, core::Entity *entity)
{
+ math::Vector3f v;
+ math::Color color;
+
std::string shapename;
std::string strval;
+
float direction;
float pitch;
float roll;
+
+ float f;
+
bool blnval;
if (inifile.got_key_string("shape", shapename)) {
@@ -42,34 +49,48 @@ bool Parser::got_entity_key(filesystem::IniFile &inifile, core::Entity *entity)
} else if (inifile.got_key_string("label", strval)) {
entity->set_label(strval);
return true;
+
} else if (inifile.got_key_string("name", strval)) {
entity->set_name(strval);
return true;
+
} else if (inifile.got_key_string("model", strval)) {
entity->set_modelname(strval);
return true;
+
} else if (inifile.got_key_bool("showonmap", blnval)) {
if (blnval)
entity->set_flag(Entity::ShowOnMap);
else
entity->unset_flag(Entity::ShowOnMap);
return true;
+
} else if (inifile.got_key_angle("direction", direction)) {
- entity->axis().change_direction(direction);
+ entity->get_axis().change_direction(direction);
return true;
+
} else if (inifile.got_key_angle("pitch", pitch)) {
- entity->axis().change_pitch(pitch);
+ entity->get_axis().change_pitch(pitch);
return true;
+
} else if (inifile.got_key_angle("roll", roll)) {
- entity->axis().change_roll(roll);
+ entity->get_axis().change_roll(roll);
return true;
- } else if (inifile.got_key_angle("radius", entity->entity_radius)) {
+
+ } else if (inifile.got_key_angle("radius", f)) {
+ entity->entity_radius = f;
return true;
- } else if (inifile.got_key_vector3f("location", entity->entity_location)) {
+
+ } else if (inifile.got_key_vector3f("location", v)) {
+ entity->get_location().assign(v);
return true;
- } else if (inifile.got_key_color("colorsecond", entity->entity_color_second)) {
+
+ } else if (inifile.got_key_color("colorsecond", color)) {
+ entity->get_color_second().assign(color);
return true;
- } else if (inifile.got_key_color("color", entity->entity_color)) {
+
+ } else if (inifile.got_key_color("color", color)) {
+ entity->get_color().assign(color);
return true;
}