Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-12-28 22:55:35 +0000
committerStijn Buys <ingar@osirion.org>2012-12-28 22:55:35 +0000
commitf416e6b792e5dda143f60b7a2724db6b3ec33d75 (patch)
tree553ddcaa6c60489904a8db818eff688c0b85a437 /src/ui/modelview.cc
parentfe96eee5db2acbef1ea0f360b180fd9f8f990444 (diff)
Support for rendering globes with rings,
removed hardcoded 'corona' prefix for corona textures, added support for projectile fire sounds.
Diffstat (limited to 'src/ui/modelview.cc')
-rwxr-xr-xsrc/ui/modelview.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc
index 71fff6c..679c7b6 100755
--- a/src/ui/modelview.cc
+++ b/src/ui/modelview.cc
@@ -63,6 +63,7 @@ void ModelView::reset()
modelview_globetexturename.clear();
modelview_globecoronaname.clear();
+ modelview_globeringsname.clear();
modelview_globebright = false;
}
@@ -72,11 +73,12 @@ void ModelView::clear()
modelview_mode = Model;
}
-void ModelView::set_globetexturename(const std::string & texturename, const bool bright, const std::string & coronaname)
+void ModelView::set_globetexturename(const std::string & texturename, const std::string & coronaname, const std::string ringsname, const bool bright)
{
reset();
modelview_globetexturename.assign(texturename);
modelview_globecoronaname.assign(coronaname);
+ modelview_globeringsname.assign(ringsname);
modelview_globebright = bright;
}
@@ -231,7 +233,7 @@ void ModelView::draw_globe()
gl::disable(GL_LIGHTING);
if (modelview_globecoronaname.size()) {
- size_t corona_id = render::Textures::load("textures/corona/" + modelview_globecoronaname);
+ size_t corona_id = render::Textures::load("textures/" + modelview_globecoronaname);
render::draw_globe_corona(math::Vector3f(0.0f, 0.0f, 0.0f), modelview_color_primary, reference_radius, corona_id);
}
}
@@ -246,6 +248,14 @@ void ModelView::draw_globe()
render::draw_sphere(modelview_color_primary, reference_radius);
+ if (modelview_globeringsname.size()) {
+ size_t rings_id = render::Textures::load("textures/" + modelview_globeringsname);
+ if (!modelview_globetexturename.size()) {
+ gl::enable(GL_TEXTURE_2D);
+ }
+ render::draw_globe_rings(modelview_color_primary, rings_id);
+ }
+
gl::pop();
render::State::set_normalize(false);