From 9ae7de1aeab9e578bd470c5be2c86e34f8a02af2 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 24 Nov 2013 00:26:00 +0000 Subject: Parse the map tag 'info' key. --- src/model/mapfile.cc | 24 ++++++++++++++++++++++++ src/model/tags.h | 17 +++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/model/mapfile.cc b/src/model/mapfile.cc index c687124..b78448c 100644 --- a/src/model/mapfile.cc +++ b/src/model/mapfile.cc @@ -1625,6 +1625,9 @@ Model * MapFile::load(std::string const &name) } else if (mapfile.got_key_int("flare", u)) { tag_light->set_flare(u); continue; + + } else if (mapfile.got_key_string("info", str)) { + tag_light->set_info(str); } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1694,6 +1697,9 @@ Model * MapFile::load(std::string const &name) } else { mapfile.unknown_value(); } + + } else if (mapfile.got_key_string("info", str)) { + tag_flare->set_info(str); } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1730,6 +1736,9 @@ Model * MapFile::load(std::string const &name) } else if (mapfile.got_key_float("scale", s)) { tag_particles->set_scale(s); + + } else if (mapfile.got_key_string("info", str)) { + tag_particles->set_info(str); } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1776,6 +1785,9 @@ Model * MapFile::load(std::string const &name) } else if (mapfile.got_key("angles")) { continue; + } else if (mapfile.got_key_string("info", str)) { + tag_sound->set_info(str); + } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1811,6 +1823,9 @@ Model * MapFile::load(std::string const &name) } else { tag_submodel->set_scale(1.0f); } + + } else if (mapfile.got_key_string("info", str)) { + tag_submodel->set_info(str); } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1836,6 +1851,9 @@ Model * MapFile::load(std::string const &name) } else if (mapfile.got_key_float("radius", r)) { tag_dock->set_radius(r * SCALE); continue; + + } else if (mapfile.got_key_string("info", str)) { + tag_dock->set_info(str); } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1863,6 +1881,9 @@ Model * MapFile::load(std::string const &name) tag_weapon->set_cone(r); continue; + } else if (mapfile.got_key_string("info", str)) { + tag_weapon->set_info(str); + } else if (mapfile.got_key()) { mapfile.unknown_key(); @@ -1890,6 +1911,9 @@ Model * MapFile::load(std::string const &name) tag_weapon->set_cone(r); continue; + } else if (mapfile.got_key_string("info", str)) { + tag_weapon->set_info(str); + } else if (mapfile.got_key()) { mapfile.unknown_key(); diff --git a/src/model/tags.h b/src/model/tags.h index 7f7d5d7..5be7576 100644 --- a/src/model/tags.h +++ b/src/model/tags.h @@ -60,6 +60,14 @@ public: { return tag_location; } + + /** + * @brief tag info text + * */ + inline const std::string & info() const + { + return tag_info; + } /* ---- mutators ------------------------------------------- */ /** @@ -77,6 +85,14 @@ public: { tag_location.assign(x, y, z); } + + /** + * @brief set the info text + * */ + inline void set_info(const std::string &text) + { + tag_info.assign(text); + } /* ---- actors --------------------------------------------- */ @@ -90,6 +106,7 @@ public: private: math::Vector3f tag_location; + std::string tag_info; }; /* ---- class Light ------------------------------------------------ */ -- cgit v1.2.3