[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20361] trunk/blender/source/gameengine: BGE: Random sensor will produce true random sequence of events when seed is set to 0 in the GUI (the actual seed value is stored in the sensor seed attribute).

Benoit Bolsee benoit.bolsee at online.be
Sat May 23 16:40:36 CEST 2009


Revision: 20361
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20361
Author:   ben2610
Date:     2009-05-23 16:40:36 +0200 (Sat, 23 May 2009)

Log Message:
-----------
BGE: Random sensor will produce true random sequence of events when seed is set to 0 in the GUI (the actual seed value is stored in the sensor seed attribute). Positive values will use fixed pseudo random sequence.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/KX_ConvertSensors.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h

Modified: trunk/blender/source/gameengine/Converter/KX_ConvertSensors.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_ConvertSensors.cpp	2009-05-23 14:21:11 UTC (rev 20360)
+++ trunk/blender/source/gameengine/Converter/KX_ConvertSensors.cpp	2009-05-23 14:40:36 UTC (rev 20361)
@@ -682,6 +682,11 @@
 					if (eventmgr)
 					{
 						int randomSeed = blenderrndsensor->seed;
+						if (randomSeed == 0)
+						{
+							randomSeed = (int)(kxengine->GetRealTime()*100000.0);
+							randomSeed ^= (intptr_t)blenderrndsensor;
+						}
 						gamesensor = new SCA_RandomSensor(eventmgr, gameobj, randomSeed);
 					}
 				}

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2009-05-23 14:21:11 UTC (rev 20360)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2009-05-23 14:40:36 UTC (rev 20361)
@@ -1770,6 +1770,11 @@
 	return m_clockTime;
 }
 
+double KX_KetsjiEngine::GetRealTime(void) const
+{
+	return m_kxsystem->GetTimeInSeconds();
+}
+
 void KX_KetsjiEngine::SetAnimFrameRate(double framerate)
 {
 	m_anim_framerate = framerate;

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2009-05-23 14:21:11 UTC (rev 20360)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2009-05-23 14:40:36 UTC (rev 20361)
@@ -271,6 +271,7 @@
 	 */
 	double GetClockTime(void) const;
 
+	double GetRealTime(void) const;
 	/**
 	 * Returns the difference between the local time of the scene (when it
 	 * was running and not suspended) and the "curtime"





More information about the Bf-blender-cvs mailing list