Commit 669f3410 authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:moecube/ygopro-core into develop

parents dc4501ae 16c1bc32
...@@ -550,6 +550,7 @@ const std::map<uint64_t, uint64_t> category_checklist{ ...@@ -550,6 +550,7 @@ const std::map<uint64_t, uint64_t> category_checklist{
#define EFFECT_XYZ_MIN_COUNT 372 #define EFFECT_XYZ_MIN_COUNT 372
#define EFFECT_SYNCHRO_LEVEL_EX 373 #define EFFECT_SYNCHRO_LEVEL_EX 373
#define EFFECT_RITUAL_LEVEL_EX 374 #define EFFECT_RITUAL_LEVEL_EX 374
#define EFFECT_DOUBLE_XMATERIAL 375
//#define EVENT_STARTUP 1000 //#define EVENT_STARTUP 1000
#define EVENT_FLIP 1001 #define EVENT_FLIP 1001
......
...@@ -59,24 +59,25 @@ public: ...@@ -59,24 +59,25 @@ public:
return l + (int)(x % range); return l + (int)(x % range);
} }
// N % k == (N - k) % k, discard the leftmost numbers // N % k = (N - k) % k = (-k) % k
// discard (N % range) numbers from the left end so that it is a multiple of range
#pragma warning(disable:4146)
int get_random_integer_v2(int l, int h) { int get_random_integer_v2(int l, int h) {
uint32_t range = (h - l + 1); uint32_t range = (h - l + 1);
#pragma warning(disable:4146)
uint32_t bound = -range % range; uint32_t bound = -range % range;
#pragma warning(default:4146)
auto x = rng(); auto x = rng();
while (x < bound) { while (x < bound) {
x = rng(); x = rng();
} }
return l + (int)(x % range); return l + (int)(x % range);
} }
#pragma warning(default:4146)
// Fisher-Yates shuffle [first, last) // Fisher-Yates shuffle [first, last)
template<typename T> template<typename T>
void shuffle_vector(std::vector<T>& v, int first = 0, int last = INT32_MAX, int version = 2) { void shuffle_vector(std::vector<T>& v, int first = 0, int last = INT32_MAX, int version = 2) {
if ((size_t)last > v.size()) if ((size_t)last > v.size())
last = v.size(); last = (int)v.size();
auto distribution = &mtrandom::get_random_integer_v2; auto distribution = &mtrandom::get_random_integer_v2;
if (version == 1) if (version == 1)
distribution = &mtrandom::get_random_integer_v1; distribution = &mtrandom::get_random_integer_v1;
......
...@@ -80,7 +80,6 @@ include(LUA_DIR) ...@@ -80,7 +80,6 @@ include(LUA_DIR)
project "ocgcore" project "ocgcore"
kind "SharedLib" kind "SharedLib"
cppdialect "C++14"
files { "*.cpp", "*.h" } files { "*.cpp", "*.h" }
links { "lua" } links { "lua" }
......
project "ocgcore" project "ocgcore"
kind "StaticLib" kind "StaticLib"
cppdialect "C++14"
files { "*.cpp", "*.h" } files { "*.cpp", "*.h" }
...@@ -10,6 +9,9 @@ project "ocgcore" ...@@ -10,6 +9,9 @@ project "ocgcore"
includedirs { LUA_INCLUDE_DIR } includedirs { LUA_INCLUDE_DIR }
end end
filter "not action:vs*"
cppdialect "C++14"
filter "system:bsd" filter "system:bsd"
defines { "LUA_USE_POSIX" } defines { "LUA_USE_POSIX" }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment