mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 12:26:39 +00:00 
			
		
		
		
	Note, I suspect Rng::rollClosedProbability() is not needed. The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0. On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			653 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			653 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef MISC_RNG_H
 | |
| #define MISC_RNG_H
 | |
| 
 | |
| #include <cassert>
 | |
| 
 | |
| namespace OEngine {
 | |
| namespace Misc
 | |
| {
 | |
| 
 | |
| /*
 | |
|   Provides central implementation of the RNG logic
 | |
| */
 | |
| class Rng
 | |
| {
 | |
| public:
 | |
| 
 | |
|     /// seed the RNG
 | |
|     static void init();
 | |
| 
 | |
|     /// return value in range [0.0f, 1.0f)  <- note open upper range.
 | |
|     static float rollProbability();
 | |
|   
 | |
|     /// return value in range [0.0f, 1.0f]  <- note closed upper range.
 | |
|     static float rollClosedProbability();
 | |
| 
 | |
|     /// return value in range [0, max)  <- note open upper range.
 | |
|     static int rollDice(int max);
 | |
| 
 | |
|     /// return value in range [0, 99]
 | |
|     static int roll0to99() { return rollDice(100); }
 | |
| };
 | |
| 
 | |
| }
 | |
| }
 | |
| 
 | |
| #endif
 |