[NET] Implemented XNetRandom
Fixed checkpoints in Gears of War 3
This commit is contained in:
@@ -238,13 +238,23 @@ DECLARE_XAM_EXPORT1(NetDll_XNetGetOpt, kNetworking, kSketchy);
|
||||
|
||||
dword_result_t NetDll_XNetRandom_entry(dword_t caller, lpvoid_t buffer_ptr,
|
||||
dword_t length) {
|
||||
// For now, constant values.
|
||||
// This makes replicating things easier.
|
||||
std::memset(buffer_ptr, 0xBB, length);
|
||||
uint8_t* buffer_data_ptr = buffer_ptr.as<uint8_t*>();
|
||||
|
||||
return 0;
|
||||
if (buffer_data_ptr == nullptr || length == 0) {
|
||||
return X_ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
std::random_device rnd;
|
||||
std::mt19937_64 gen(rnd());
|
||||
std::uniform_int_distribution<int> dist(0,
|
||||
std::numeric_limits<uint8_t>::max());
|
||||
|
||||
std::generate(buffer_data_ptr, buffer_data_ptr + length,
|
||||
[&]() { return static_cast<uint8_t>(dist(gen)); });
|
||||
|
||||
return X_ERROR_SUCCESS;
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(NetDll_XNetRandom, kNetworking, kStub);
|
||||
DECLARE_XAM_EXPORT1(NetDll_XNetRandom, kNetworking, kImplemented);
|
||||
|
||||
dword_result_t NetDll_WSAStartup_entry(dword_t caller, word_t version,
|
||||
pointer_t<X_WSADATA> data_ptr) {
|
||||
|
||||
Reference in New Issue
Block a user