[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14205] trunk/blender/source/gameengine: Correction on BGE fixes:

Benoit Bolsee benoit.bolsee at online.be
Fri Mar 21 23:44:12 CET 2008


Revision: 14205
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14205
Author:   ben2610
Date:     2008-03-21 23:44:12 +0100 (Fri, 21 Mar 2008)

Log Message:
-----------
Correction on BGE fixes:

- check that an object has been created before setting the physics environment
- check that there is an active camera before using it
- when a camera is deleted, remove it from m_cameras list

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2008-03-21 22:26:26 UTC (rev 14204)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2008-03-21 22:44:12 UTC (rev 14205)
@@ -1670,7 +1670,8 @@
 		break;
 	}
 	}
-	gameobj->SetPhysicsEnvironment(kxscene->GetPhysicsEnvironment());
+	if (gameobj)
+		gameobj->SetPhysicsEnvironment(kxscene->GetPhysicsEnvironment());
 	return gameobj;
 }
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2008-03-21 22:26:26 UTC (rev 14204)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2008-03-21 22:44:12 UTC (rev 14205)
@@ -617,7 +617,7 @@
 		SetWorldSettings(scene->GetWorldInfo());
 
 		// Avoid drawing the scene with the active camera twice when it's viewport is enabled
-		if(!cam->GetViewport())
+		if(cam && !cam->GetViewport())
 		{
 			if (scene->IsClearingZBuffer())
 				m_rasterizer->ClearDepthBuffer();
@@ -854,6 +854,9 @@
 
 	RAS_Rect viewport;
 
+	if (!cam)
+		return;
+
 	if (cam->GetViewport()) {
 		viewport.SetLeft(cam->GetViewportLeft()); 
 		viewport.SetBottom(cam->GetViewportBottom());

Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2008-03-21 22:26:26 UTC (rev 14204)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2008-03-21 22:44:12 UTC (rev 14205)
@@ -794,6 +794,9 @@
 		//m_active_camera->Release();
 		m_active_camera = NULL;
 	}
+	// in case this is a camera
+	m_cameras.remove((KX_Camera*)newobj);
+
 	if (m_sceneConverter)
 		m_sceneConverter->UnregisterGameObject(newobj);
 	// return value will be 0 if the object is actually deleted (all reference gone)
@@ -942,6 +945,7 @@
 		m_cameras.push_back(cam);
 }
 
+
 KX_Camera* KX_Scene::GetActiveCamera()
 {	
 	// NULL if not defined





More information about the Bf-blender-cvs mailing list