diff options
author | Stijn Buys <ingar@osirion.org> | 2012-03-19 21:03:47 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2012-03-19 21:03:47 +0000 |
commit | c4cd091c43ade80033f41c1ceda5c9f51979dcbc (patch) | |
tree | 91b7b73cda8847c571d7aeaa7c38cfb48ce0a860 /src/ui | |
parent | 3c66f020bbe244e85da8cd92208b69cdba83ab97 (diff) |
Resolved a ModelView related segfault when opening the buy menu and a potental segfault in the inventory window.
Diffstat (limited to 'src/ui')
-rwxr-xr-x | src/ui/modelview.cc | 31 | ||||
-rwxr-xr-x | src/ui/modelview.h | 22 |
2 files changed, 35 insertions, 18 deletions
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc index 79544bb..033e4e3 100755 --- a/src/ui/modelview.cc +++ b/src/ui/modelview.cc @@ -47,33 +47,34 @@ void ModelView::print(const size_t indent) const con_print << aux::pad_left(marker, indent*2) << label() << " \"" << modelname() << "\"" << std::endl; } -void ModelView::set_globetexturename(const std::string & texturename, const bool bright, const std::string & coronaname) -{ - modelview_globetexturename.assign(texturename); - modelview_globecoronaname.assign(coronaname); - modelview_globebright = bright; - +void ModelView::clear() +{ set_background(false); + modelview_axis.clear(); modelview_axis.change_direction(180); modelview_axis.change_pitch(-15); modelview_zoom = 1.0f; + modelview_modelname.clear(); + modelview_globetexturename.clear(); + modelview_globecoronaname.clear(); + modelview_globebright = false; +} + +void ModelView::set_globetexturename(const std::string & texturename, const bool bright, const std::string & coronaname) +{ + clear(); + modelview_globetexturename.assign(texturename); + modelview_globecoronaname.assign(coronaname); + modelview_globebright = bright; } void ModelView::set_modelname(const std::string & modelname) { + clear(); modelview_modelname.assign(modelname); - - set_background(false); - modelview_axis.clear(); - modelview_axis.change_direction(180); - modelview_axis.change_pitch(-15); - modelview_zoom = 1.0f; - modelview_globetexturename.clear(); - modelview_globecoronaname.clear(); - modelview_globebright = false; } void ModelView::set_colors(const math::Color & color_primary, const math::Color & color_secondary) diff --git a/src/ui/modelview.h b/src/ui/modelview.h index 5596271..d49acc8 100755 --- a/src/ui/modelview.h +++ b/src/ui/modelview.h @@ -37,13 +37,29 @@ public: return modelview_radius; } + /** + * @brief clear the modelview and show nothing + * */ + void clear(); + + /** + * @brief show a textured globe with an optional corona + * */ void set_globetexturename(const std::string & texturename, const bool bright, const std::string & coronaname); - + + /** + * @brief show a model + * */ void set_modelname(const std::string & modelname); + /** + * @brief et primary and secondary entity color, to be used by the model renderer + * */ void set_colors(const math::Color & color_primary, const math::Color & color_secondary); - /// print modelview description + /** + * @brief print modelview widget description + * */ virtual void print(const size_t indent) const; /** @@ -51,7 +67,7 @@ public: * @param zoom the new zoom factor * The zoom factor will be clamped to the range [1.0-10.0] * 1.0 is not zoomed out, 10.0 is zoomed out by a factor of 10 - */ + * */ void set_zoom(const float zoom); inline void set_radius(const float radius) { |