changeset 11905:fe3085dd504b draft

(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.
author rubidium <rubidium@openttd.org>
date Thu, 14 May 2009 12:08:24 +0000
parents c8497b369ab7
children e56f17f057fe
files src/core/random_func.hpp src/network/network_internal.h
diffstat 2 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/random_func.hpp
+++ b/src/core/random_func.hpp
@@ -135,10 +135,14 @@
  * @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 @@
  * @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 */
--- 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,