Browse Source

Seed love.math.random when the math module is loaded, instead of in love.run.

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
ef5897b22c
3 changed files with 7 additions and 9 deletions
  1. 7 0
      src/modules/math/MathModule.cpp
  2. 0 5
      src/scripts/boot.lua
  3. 0 4
      src/scripts/boot.lua.h

+ 7 - 0
src/modules/math/MathModule.cpp

@@ -32,6 +32,9 @@
 #include <list>
 #include <iostream>
 
+// C
+#include <time.h>
+
 using std::list;
 using love::Vector2;
 
@@ -359,6 +362,10 @@ Math::Math()
 {
 	// prevent the runtime from free()-ing this
 	retain();
+
+	RandomGenerator::Seed seed;
+	seed.b64 = (uint64) time(nullptr);
+	rng.setSeed(seed);
 }
 
 Math::~Math()

+ 0 - 5
src/scripts/boot.lua

@@ -511,11 +511,6 @@ function love.init()
 end
 
 function love.run()
-
-	if love.math then
-		love.math.setRandomSeed(os.time())
-	end
-
 	if love.load then love.load(arg) end
 
 	-- We don't want the first frame's dt to include time taken by love.load.

+ 0 - 4
src/scripts/boot.lua.h

@@ -952,10 +952,6 @@ const unsigned char boot_lua[] =
 	0x65, 0x6e, 0x64, 0x0a,
 	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x75, 0x6e, 0x28, 
 	0x29, 0x0a,
-	0x09, 0x69, 0x66, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
-	0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x74, 0x52, 0x61, 0x6e, 
-	0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x28, 0x6f, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x28, 0x29, 0x29, 0x0a,
-	0x09, 0x65, 0x6e, 0x64, 0x0a,
 	0x09, 0x69, 0x66, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 
 	0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x61, 0x72, 0x67, 0x29, 0x20, 0x65, 0x6e, 
 	0x64, 0x0a,