[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