diff options
Diffstat (limited to 'source/gameengine/Converter')
7 files changed, 23 insertions, 35 deletions
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 2ff9d38dee4..a1af195801c 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -323,8 +323,7 @@ bool ConvertMaterial( MTFace* tface, const char *tfaceName, MFace* mface, - MCol* mmcol, - int lightlayer, + MCol* mmcol, MTF_localLayer *layers, bool glslmat) { @@ -720,12 +719,12 @@ bool ConvertMaterial( return true; } - -RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* rendertools, KX_Scene* scene, KX_BlenderSceneConverter *converter) +/* blenderobj can be NULL, make sure its checked for */ +RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene, KX_BlenderSceneConverter *converter) { RAS_MeshObject *meshobj; bool skinMesh = false; - int lightlayer = blenderobj->lay; + int lightlayer = blenderobj ? blenderobj->lay:(1<<20)-1; // all layers if no object. if ((meshobj = converter->FindGameMesh(mesh/*, ob->lay*/)) != NULL) return meshobj; @@ -748,7 +747,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* } // Determine if we need to make a skinned mesh - if (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj)) + if (blenderobj && (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj))) { meshobj = new BL_SkinMeshObject(mesh); skinMesh = true; @@ -843,9 +842,8 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* tan3 = tangent[f*4 + 3]; } - /* get material */ - ma = give_current_material(blenderobj, mface->mat_nr+1); - + ma = give_current_material(blenderobj, mface->mat_nr+1); + { bool visible = true; bool twoside = false; @@ -859,7 +857,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* if (!bl_mat) bl_mat = new BL_Material(); ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol, - lightlayer, layers, converter->GetGLSLMaterials()); + layers, converter->GetGLSLMaterials()); visible = ((bl_mat->ras_mode & POLY_VIS)!=0); collider = ((bl_mat->ras_mode & COLLIDER)!=0); @@ -882,7 +880,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* if (kx_blmat == NULL) kx_blmat = new KX_BlenderMaterial(); - kx_blmat->Initialize(scene, bl_mat, skinMesh, lightlayer); + kx_blmat->Initialize(scene, bl_mat, skinMesh); polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat); } else { @@ -1066,8 +1064,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* -static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject, - KX_Scene *kxscene) +static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blenderobject) { PHY_MaterialProps *materialProps = new PHY_MaterialProps; @@ -1100,8 +1097,7 @@ static PHY_MaterialProps *CreateMaterialFromBlenderObject(struct Object* blender return materialProps; } -static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject, - KX_Scene *kxscene) +static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blenderobject) { PHY_ShapeProps *shapeProps = new PHY_ShapeProps; @@ -1396,12 +1392,11 @@ void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj, PHY_ShapeProps* shapeprops = - CreateShapePropsFromBlenderObject(blenderobject, - kxscene); + CreateShapePropsFromBlenderObject(blenderobject); PHY_MaterialProps* smmaterial = - CreateMaterialFromBlenderObject(blenderobject, kxscene); + CreateMaterialFromBlenderObject(blenderobject); KX_ObjectProperties objprop; objprop.m_lockXaxis = (blenderobject->gameflag2 & OB_LOCK_RIGID_BODY_X_AXIS) !=0; @@ -1719,7 +1714,7 @@ static KX_GameObject *gameobject_from_blenderobject( Mesh* mesh = static_cast<Mesh*>(ob->data); float center[3], extents[3]; float radius = my_boundbox_mesh((Mesh*) ob->data, center, extents); - RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,rendertools,kxscene,converter); + RAS_MeshObject* meshobj = BL_ConvertMesh(mesh,ob,kxscene,converter); // needed for python scripting kxscene->GetLogicManager()->RegisterMeshName(meshobj->GetName(),meshobj); @@ -1902,7 +1897,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie, KX_KetsjiEngine* ketsjiEngine, e_PhysicsEngine physics_engine, PyObject* pythondictionary, - SCA_IInputDevice* keydev, RAS_IRenderTools* rendertools, RAS_ICanvas* canvas, KX_BlenderSceneConverter* converter, @@ -2671,7 +2665,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, struct Object* blenderobj = converter->FindBlenderObject(gameobj); int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0; bool isInActiveLayer = (blenderobj->lay & layerMask)!=0; - BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,keydev,layerMask,isInActiveLayer,canvas,converter); + BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,layerMask,isInActiveLayer,canvas,converter); // set the init state to all objects gameobj->SetInitState((blenderobj->init_state)?blenderobj->init_state:blenderobj->state); } @@ -2709,4 +2703,3 @@ void BL_ConvertBlenderObjects(struct Main* maggie, RAS_BucketManager *bucketmanager = kxscene->GetBucketManager(); bucketmanager->OptimizeBuckets(distance); } - diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.h b/source/gameengine/Converter/BL_BlenderDataConversion.h index bf733b748e2..b8f9d1ec4e6 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.h +++ b/source/gameengine/Converter/BL_BlenderDataConversion.h @@ -34,14 +34,13 @@ #include "KX_Python.h" #include "KX_PhysicsEngineEnums.h" -class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class RAS_IRenderTools* rendertools,class KX_Scene* scene, class KX_BlenderSceneConverter *converter); +class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class KX_Scene* scene, class KX_BlenderSceneConverter *converter); void BL_ConvertBlenderObjects(struct Main* maggie, class KX_Scene* kxscene, class KX_KetsjiEngine* ketsjiEngine, e_PhysicsEngine physics_engine, PyObject* pythondictionary, - class SCA_IInputDevice* keydev, class RAS_IRenderTools* rendertools, class RAS_ICanvas* canvas, class KX_BlenderSceneConverter* sceneconverter, diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 776a3528d89..4df9df75d3d 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -244,7 +244,6 @@ struct BlenderDebugDraw : public btIDebugDraw void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene, PyObject* dictobj, - class SCA_IInputDevice* keyinputdev, class RAS_IRenderTools* rendertools, class RAS_ICanvas* canvas) { @@ -334,7 +333,6 @@ void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene, m_ketsjiEngine, physics_engine, dictobj, - keyinputdev, rendertools, canvas, this, diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.h b/source/gameengine/Converter/KX_BlenderSceneConverter.h index c47055803c8..50ce8d61336 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.h +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.h @@ -94,7 +94,6 @@ public: virtual void ConvertScene( class KX_Scene* destinationscene, PyObject* dictobj, - class SCA_IInputDevice* keyinputdev, class RAS_IRenderTools* rendertools, class RAS_ICanvas* canvas ); @@ -149,6 +148,9 @@ public: virtual bool GetGLSLMaterials(); struct Scene* GetBlenderSceneForName(const STR_String& name); + + struct Main* GetMain() { return m_maggie; }; + }; #endif //__KX_BLENDERSCENECONVERTER_H diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index b6fc7f1dbba..c18e4fce8a5 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -629,7 +629,6 @@ void BL_ConvertActuators(char* maggiename, tmpmesh = BL_ConvertMesh( editobact->me, blenderobject, - rendertools, scene, converter ); diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp index 0b395cfd402..eb77e087de5 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.cpp +++ b/source/gameengine/Converter/KX_ConvertSensors.cpp @@ -28,6 +28,7 @@ * Conversion of Blender data blocks to KX sensor system */ + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -94,7 +95,6 @@ void BL_ConvertSensors(struct Object* blenderobject, SCA_LogicManager* logicmgr, KX_Scene* kxscene, KX_KetsjiEngine* kxengine, - SCA_IInputDevice* keydev, int activeLayerBitInfo, bool isInActiveLayer, RAS_ICanvas* canvas, @@ -444,9 +444,8 @@ void BL_ConvertSensors(struct Object* blenderobject, blendernearsensor->dist, blendernearsensor->resetdist, bFindMaterial, - nearpropertyname,kxscene, - physCtrl - ); + nearpropertyname, + physCtrl); } break; @@ -648,8 +647,7 @@ void BL_ConvertSensors(struct Object* blenderobject, smallmargin, largemargin, bFindMaterial, - radarpropertyname, - kxscene); + radarpropertyname); } diff --git a/source/gameengine/Converter/KX_ConvertSensors.h b/source/gameengine/Converter/KX_ConvertSensors.h index 9162a866768..630323f30b4 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.h +++ b/source/gameengine/Converter/KX_ConvertSensors.h @@ -34,7 +34,6 @@ void BL_ConvertSensors(struct Object* blenderobject, class SCA_LogicManager* logicmgr, class KX_Scene* kxscene, class KX_KetsjiEngine* kxengine, - class SCA_IInputDevice* keydev, int activeLayerBitInfo, bool isInActiveLayer, class RAS_ICanvas* canvas, |