diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-12-01 11:43:02 +0300 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-12-01 11:43:02 +0300 |
commit | d098d94372e6952ff3d540978aa096ca2df358e7 (patch) | |
tree | d7bce2bde16ac3386556958c7bdb4a2e0f7d9b49 /source/gameengine | |
parent | 8b9de908bbc724c83627c80620daa654b7888cea (diff) |
Make objects lit by default if there is a light in the scene, and no other face information exists for that object.
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Converter/BL_BlenderDataConversion.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index a716098514a..f2d9d46bf94 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -160,6 +160,8 @@ #include "BL_ArmatureObject.h" #include "BL_DeformableGameObject.h" +static int default_face_mode = TF_DYNAMIC; + static unsigned int KX_rgbaint2uint_new(unsigned int icol) { union @@ -197,6 +199,21 @@ static unsigned int KX_Mcol2uint_new(MCol col) return out_colour.integer; } +static void SetDefaultFaceType(Scene* scene) +{ + default_face_mode = TF_DYNAMIC; + Base *base = static_cast<Base*>(scene->base.first); + while(base) + { + if (base->object->type == OB_LAMP) + { + default_face_mode = TF_DYNAMIC|TF_LIGHT; + return; + } + base = base->next; + } +} + RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* rendertools, KX_Scene* scene, KX_BlenderSceneConverter *converter) { RAS_MeshObject *meshobj; @@ -332,7 +349,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* // If there are no vertex colors OR texfaces, // Initialize face to white and set COLLSION true and everything else FALSE unsigned int colour = 0xFFFFFFFFL; - mode = TF_DYNAMIC; + mode = default_face_mode; transp = TF_SOLID; tile = 0; if (ma) @@ -1077,6 +1094,8 @@ void BL_ConvertBlenderObjects(struct Main* maggie, logicmgr->RegisterActionName(curAct->id.name, curAct); } + SetDefaultFaceType(blenderscene); + Base *base = static_cast<Base*>(blenderscene->base.first); while(base) { |