From c4cd091c43ade80033f41c1ceda5c9f51979dcbc Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 19 Mar 2012 21:03:47 +0000 Subject: Resolved a ModelView related segfault when opening the buy menu and a potental segfault in the inventory window. --- src/ui/modelview.cc | 31 ++++++++++++++++--------------- src/ui/modelview.h | 22 +++++++++++++++++++--- 2 files changed, 35 insertions(+), 18 deletions(-) (limited to 'src/ui') 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) { -- cgit v1.2.3