OpenTTD Source 20241224-master-gf74b0cf984
|
Implementation of the pseudo random generator. More...
#include "../stdafx.h"
#include "random_func.hpp"
#include "bitmath_func.hpp"
#include "../debug.h"
#include "../safeguards.h"
Go to the source code of this file.
Functions | |
void | SetRandomSeed (uint32_t seed) |
(Re)set the state of the random number generators. | |
void | RandomBytesWithFallback (std::span< uint8_t > buf) |
Fill the given buffer with random bytes. | |
Variables | |
Randomizer | _random |
Random used in the game state calculations. | |
Randomizer | _interactive_random |
Random used everywhere else, where it does not (directly) influence the game state. | |
Implementation of the pseudo random generator.
Definition in file random_func.cpp.
void RandomBytesWithFallback | ( | std::span< uint8_t > | buf | ) |
Fill the given buffer with random bytes.
This function will attempt to use a cryptographically-strong random generator, but will fall back to a weaker random generator if none is available.
In the end, the buffer will always be filled with some form of random bytes when this function returns.
buf | The buffer to fill with random bytes. |
Definition at line 95 of file random_func.cpp.
References Debug.
Referenced by X25519SecretKey::CreateRandom(), X25519Nonce::CreateRandom(), GenerateUid(), and X25519AuthenticationHandler::SendResponse().
void SetRandomSeed | ( | uint32_t | seed | ) |
(Re)set the state of the random number generators.
seed | the new state |
Definition at line 66 of file random_func.cpp.
References _interactive_random, _random, and Randomizer::SetSeed().
Referenced by StartupOneEngine().
Randomizer _interactive_random |
Random used everywhere else, where it does not (directly) influence the game state.
Definition at line 37 of file random_func.cpp.
Referenced by SelectCompanyManagerFaceWindow::OnClick(), RestoreRandomSeeds(), SaveRandomSeeds(), and SetRandomSeed().
Randomizer _random |
Random used in the game state calculations.
Definition at line 37 of file random_func.cpp.
Referenced by _GenerateWorld(), DoStartupNewCompany(), ClientNetworkGameSocketHandler::GameLoop(), GenerateTowns(), RestoreRandomSeeds(), SaveRandomSeeds(), and SetRandomSeed().