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>2009-01-13 19:29:54 +0000
committerStijn Buys <ingar@osirion.org>2009-01-13 19:29:54 +0000
commit5992c46fc62db1bdf038b5b7be0e94dd10183e77 (patch)
tree91b513b038a4e8c2590d02bc7aeea382f998bb43 /src/model/map.cc
parent9caf289046ed2639f1935fb1c87133af4f7f6cac (diff)
adds 'cull' option to fx_flare and fx_particles
Diffstat (limited to 'src/model/map.cc')
-rw-r--r--src/model/map.cc30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/model/map.cc b/src/model/map.cc
index a59d2ff..9a1802f 100644
--- a/src/model/map.cc
+++ b/src/model/map.cc
@@ -4,6 +4,7 @@
the terms of the GNU General Public License version 2
*/
+#include "auxiliary/functions.h"
#include "filesystem/filesystem.h"
#include "math/mathlib.h"
#include "model/map.h"
@@ -837,6 +838,7 @@ Model * Map::load(std::string const &name)
unsigned int u;
float angle;
float r;
+ std::string str;
while (mapfile.getline()) {
@@ -1027,7 +1029,7 @@ Model * Map::load(std::string const &name)
} else if (mapfile.got_key_float("radius", flare->light_radius)) {
flare->light_radius *= LIGHTSCALE;
-
+
} else if (mapfile.got_key_float("frequency", flare->light_frequency)) {
continue;
@@ -1056,6 +1058,19 @@ Model * Map::load(std::string const &name)
} else if (mapfile.got_key_float("roll", angle)) {
flare->flare_axis.change_roll(angle);
+
+ } else if (mapfile.got_key_string("cull", str)) {
+
+ aux::to_lowercase(str);
+ if (str.compare("none") == 0) {
+ flare->flare_cull = CullNone;
+ } else if (str.compare("back") == 0) {
+ flare->flare_cull = CullBack;
+ } else if (str.compare("front") == 0) {
+ flare->flare_cull = CullFront;
+ } else {
+ mapfile.unknown_value();
+ }
} else if (mapfile.got_key()) {
mapfile.unknown_key();
@@ -1098,6 +1113,19 @@ Model * Map::load(std::string const &name)
} else if (mapfile.got_key_float("radius", r)) {
particles->set_radius(r * LIGHTSCALE);
+
+ } else if (mapfile.got_key_string("cull", str)) {
+
+ aux::to_lowercase(str);
+ if (str.compare("none") == 0) {
+ particles->particles_cull = CullNone;
+ } else if (str.compare("back") == 0) {
+ particles->particles_cull = CullBack;
+ } else if (str.compare("front") == 0) {
+ particles->particles_cull = CullFront;
+ } else {
+ mapfile.unknown_value();
+ }
} else if (mapfile.got_key()) {
mapfile.unknown_key();