#pragma once #include #include "strings.hpp" #include namespace util { namespace { //make a random generator and seed it with a p random number static std::random_device rd; static std::mt19937 gen( rd( ) ); } template < typename t > __forceinline t random_number( t min, t max ) { if constexpr( !std::is_integral_v< t > ) { std::uniform_real_distribution< t > dist( min, max ); return dist( gen ); } else { std::uniform_int_distribution< t > dist( min, max ); return dist( gen ); } } // okay now this is epic __forceinline void raise_error(const char *error) { MessageBoxA(0, error, xors("error"), MB_ICONERROR); ExitProcess(0); } using ulong_t = DWORD; __forceinline uint32_t get_hwid() { ulong_t hwid{ }; GetVolumeInformationA(xors("C:\\"), 0, 0, &hwid, 0, 0, 0, 0); return hwid; } }