From d702c133c06cd9626430263292df69b092954c5f Mon Sep 17 00:00:00 2001 From: Evan Goers Date: Sat, 21 Jan 2012 03:19:55 +0000 Subject: Add a 'decal' macro material flag. Material flag 'Decal' enables polygon offsetting and alpha testing on the surface. --- src/model/material.cc | 9 +++++++-- src/model/material.h | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/model') diff --git a/src/model/material.cc b/src/model/material.cc index 56bb3fc..b76be02 100644 --- a/src/model/material.cc +++ b/src/model/material.cc @@ -50,7 +50,7 @@ void Material::print() } else if (flags() & Primary) { con_print << "entity "; } - + if (flags() & Bright) { con_print << "bright "; } @@ -71,7 +71,10 @@ void Material::print() } if (flags() & Origin) { con_print << "origin "; - } + } + if (flags() & Decal) { + con_print << "decal "; + } } con_print << std::endl; @@ -243,6 +246,8 @@ void Material::load_shader(const std::string &shadername) material->set_flags(Clip); } else if (firstword.compare("origin") == 0) { material->set_flags(Origin); + } else if (firstword.compare("decal") == 0) { + material->set_flags(Decal); } else if (firstword.compare("qer_editorimage") == 0) { // keyword qer_editorimage is ignored continue; diff --git a/src/model/material.h b/src/model/material.h index 1674e46..b128954 100644 --- a/src/model/material.h +++ b/src/model/material.h @@ -24,7 +24,7 @@ public: typedef void(* LoaderFuncPtr)(Material *); /// surface flags - enum SurfaceFlags { None = 0, Primary = 1, Secondary = 2, Tertiary = 3, Bright = 4, Engine = 8, Environment = 16, Texture = 32, Ignore = 64, Clip = 128, Origin = 256}; + enum SurfaceFlags { None = 0, Primary = 1, Secondary = 2, Tertiary = 3, Bright = 4, Engine = 8, Environment = 16, Texture = 32, Ignore = 64, Clip = 128, Origin = 256, Decal = 512 }; /// type definition for the material registry typedef std::map Registry; -- cgit v1.2.3