diff options
author | rubidium <rubidium@openttd.org> | 2009-05-14 12:08:24 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-05-14 12:08:24 +0000 |
commit | a5d6e23e9d2c3752e2a059325ed67026c0ebdfdb (patch) | |
tree | 89844a6b0a6dda4ea42c1e6697718394df916351 /src | |
parent | 9dff385c3841cbb894058de2ac018bfcb7e53fd9 (diff) | |
download | openttd-a5d6e23e9d2c3752e2a059325ed67026c0ebdfdb.tar.xz |
(svn r16305) -Codechange: force-enable extra sync checking when random debugging is enable and give the calling location of Chance16(R) instead of the Random call within those functions.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/random_func.hpp | 8 | ||||
-rw-r--r-- | src/network/network_internal.h | 6 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/core/random_func.hpp b/src/core/random_func.hpp index 811c53b55..9d1d585ae 100644 --- a/src/core/random_func.hpp +++ b/src/core/random_func.hpp @@ -135,10 +135,14 @@ static FORCEINLINE bool Chance16I(const uint a, const uint b, const uint32 r) * @param b The denominator of the fraction * @return True with (a/b) probability */ +#ifdef RANDOM_DEBUG + #define Chance16(a, b) Chance16I(a, b, DoRandom(__LINE__, __FILE__)) +#else static FORCEINLINE bool Chance16(const uint a, const uint b) { return Chance16I(a, b, Random()); } +#endif /* RANDOM_DEBUG */ /** * Flips a coin with a given probability and saves the randomize-number in a variable. @@ -155,10 +159,14 @@ static FORCEINLINE bool Chance16(const uint a, const uint b) * @param r The variable to save the randomize-number from Random() * @return True in (a/b) percent */ +#ifdef RANDOM_DEBUG + #define Chance16R(a, b, r) (r = DoRandom(__LINE__, __FILE__), Chance16I(a, b, r)) +#else static FORCEINLINE bool Chance16R(const uint a, const uint b, uint32 &r) { r = Random(); return Chance16I(a, b, r); } +#endif /* RANDOM_DEBUG */ #endif /* RANDOM_FUNC_HPP */ diff --git a/src/network/network_internal.h b/src/network/network_internal.h index 48aaa0530..2f743775d 100644 --- a/src/network/network_internal.h +++ b/src/network/network_internal.h @@ -18,6 +18,7 @@ #include "../command_type.h" +#ifdef RANDOM_DEBUG /** * If this line is enable, every frame will have a sync test * this is not needed in normal games. Normal is like 1 sync in 100 @@ -27,13 +28,14 @@ * option enabled to make it to work. If one of the two has it disabled * nothing will happen. */ -//#define ENABLE_NETWORK_SYNC_EVERY_FRAME +#define ENABLE_NETWORK_SYNC_EVERY_FRAME /** * In theory sending 1 of the 2 seeds is enough to check for desyncs * so in theory, this next define can be left off. */ -//#define NETWORK_SEND_DOUBLE_SEED +#define NETWORK_SEND_DOUBLE_SEED +#endif /* RANDOM_DEBUG */ enum MapPacket { MAP_PACKET_START, |