Explorar el Código

Merge pull request #25680 from Chaosus/random_fix

Fix random generation, to not always retrieve 0 after seed()
Rémi Verschelde hace 6 años
padre
commit
f6fcbcfe9e
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  1. 4 1
      core/math/random_pcg.h

+ 4 - 1
core/math/random_pcg.h

@@ -45,7 +45,10 @@ public:
 
 	RandomPCG(uint64_t seed = DEFAULT_SEED, uint64_t inc = PCG_DEFAULT_INC_64);
 
-	_FORCE_INLINE_ void seed(uint64_t seed) { pcg.state = seed; }
+	_FORCE_INLINE_ void seed(uint64_t seed) {
+		pcg.state = seed;
+		pcg32_random_r(&pcg); // Force changing internal state to avoid initial 0
+	}
 	_FORCE_INLINE_ uint64_t get_seed() { return pcg.state; }
 
 	void randomize();