diff options
author | silinoron <none@none> | 2010-08-20 12:42:14 -0700 |
---|---|---|
committer | silinoron <none@none> | 2010-08-20 12:42:14 -0700 |
commit | 43b1c2dba4eb59047756ff1f76817fbba1f33256 (patch) | |
tree | 395cb523edfa7e6c668d62f9071619218b79a033 /src | |
parent | ca350b4758fef6a2f0a277fb11a5e420887ae718 (diff) |
* Remove support for map-based random number generation (which seems unused).
* Re-add in support for the old mersenne twister for those whose processors don't support SSE2.
* Toggling whether or not you are using SFMT is as easy as checking a CMake flag, USE_SFMT, which defaults to 0.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/server/game/Maps/Map.h | 10 | ||||
-rw-r--r-- | src/server/scripts/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/server/shared/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/server/shared/Utilities/Util.cpp | 34 | ||||
-rw-r--r-- | src/server/worldserver/CMakeLists.txt | 1 |
6 files changed, 38 insertions, 10 deletions
diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index e91d82384b3..fa137eec06c 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -98,6 +98,7 @@ set(game_STAT_SRCS include_directories( ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/dep/mersennetwister ${CMAKE_SOURCE_DIR}/dep/SFMT ${CMAKE_SOURCE_DIR}/dep/zlib ${CMAKE_SOURCE_DIR}/src/server/collision diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 825ac8683e0..509120d04af 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -32,7 +32,6 @@ #include "SharedDefines.h" #include "GridRefManager.h" #include "MapRefManager.h" -#include "SFMT.h" #include <bitset> #include <list> @@ -426,15 +425,6 @@ class Map : public GridRefManager<NGridType> void UpdateIteratorBack(Player *player); -#ifdef MAP_BASED_RAND_GEN - SFMTRand sfmtRand; - int32 irand(int32 min, int32 max) { return int32(sfmtRand.IRandom(min, max)); } - uint32 urand(uint32 min, uint32 max) { return uint32(sfmtRand.URandom(min, max)); } - int32 rand32() { return int32(sfmtRand.BRandom()); } - double rand_norm() { return sfmtRand.Random(); } - double rand_chance() { return sfmtRand.Random() * 100.0; } -#endif // MAP_BASED_RAND_GEN - TempSummon *SummonCreature(uint32 entry, const Position &pos, SummonPropertiesEntry const *properties = NULL, uint32 duration = 0, Unit *summoner = NULL, uint32 vehId = 0); Creature* GetCreature(uint64 guid); GameObject* GetGameObject(uint64 guid); diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 2d6a6c32dd3..680591c00e8 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -53,6 +53,7 @@ message("-- Added Script Library to SCRIPTS lib") include_directories( ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/dep/SFMT + ${CMAKE_SOURCE_DIR}/dep/mersennetwister ${CMAKE_SOURCE_DIR}/dep/zlib ${CMAKE_SOURCE_DIR}/src/server/shared ${CMAKE_SOURCE_DIR}/src/server/shared/Configuration diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index c2a35117686..d55108a23eb 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -53,6 +53,7 @@ set(shared_STAT_SRCS include_directories( ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/dep/SFMT + ${CMAKE_SOURCE_DIR}/dep/mersennetwister ${CMAKE_SOURCE_DIR}/dep/sockets/include ${CMAKE_SOURCE_DIR}/dep/utf8cpp ${CMAKE_SOURCE_DIR}/src/server diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index ab59fdd6598..68f25138a6a 100644 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -22,9 +22,14 @@ #include "socket_include.h" #include "utf8.h" +#ifdef USE_SFMT_FOR_RNG #include "SFMT.h" +#else +#include "MersenneTwister.h" +#endif #include <ace/TSS_T.h> +#ifdef USE_SFMT_FOR_RNG typedef ACE_TSS<SFMTRand> SFMTRandTSS; static SFMTRandTSS sfmtRand; @@ -52,6 +57,35 @@ double rand_chance (void) { return sfmtRand->Random() * 100.0; } +#else +typedef ACE_TSS<MTRand> MTRandTSS; +static MTRandTSS mtRand; + +int32 irand(int32 min, int32 max) +{ + return int32(mtRand->randInt (max - min)) + min; +} + +uint32 urand(uint32 min, uint32 max) +{ + return mtRand->randInt (max - min) + min; +} + +int32 rand32() +{ + return mtRand->randInt (); +} + +double rand_norm(void) +{ + return mtRand->randExc(); +} + +double rand_chance(void) +{ + return mtRand->randExc(100.0); +} +#endif Tokens StrSplit(const std::string &src, const std::string &sep) { diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 927951e2f31..6c780a4cdbc 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -47,6 +47,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/dep/gsoap ${CMAKE_SOURCE_DIR}/dep/sockets/include ${CMAKE_SOURCE_DIR}/dep/SFMT + ${CMAKE_SOURCE_DIR}/dep/mersennetwister ${CMAKE_SOURCE_DIR}/src/server/collision ${CMAKE_SOURCE_DIR}/src/server/collision/Management ${CMAKE_SOURCE_DIR}/src/server/shared |