diff --git a/src/mapgen/mapgen.cpp b/src/mapgen/mapgen.cpp index 7984ff609..1c6395599 100644 --- a/src/mapgen/mapgen.cpp +++ b/src/mapgen/mapgen.cpp @@ -238,7 +238,8 @@ u32 Mapgen::getBlockSeed(v3s16 p, s32 seed) u32 Mapgen::getBlockSeed2(v3s16 p, s32 seed) { - u32 n = 1619 * p.X + 31337 * p.Y + 52591 * p.Z + 1013 * seed; + // Unsigned magic seed prevents undefined behavior. + u32 n = 1619 * p.X + 31337 * p.Y + 52591 * p.Z + 1013U * seed; n = (n >> 13) ^ n; return (n * (n * n * 60493 + 19990303) + 1376312589); } diff --git a/src/noise.cpp b/src/noise.cpp index a10efa3c4..46067e09d 100644 --- a/src/noise.cpp +++ b/src/noise.cpp @@ -35,7 +35,8 @@ #define NOISE_MAGIC_X 1619 #define NOISE_MAGIC_Y 31337 #define NOISE_MAGIC_Z 52591 -#define NOISE_MAGIC_SEED 1013 +// Unsigned magic seed prevents undefined behavior. +#define NOISE_MAGIC_SEED 1013U typedef float (*Interp2dFxn)( float v00, float v10, float v01, float v11,