src/core/random_func.hpp
changeset 7935 c2d1b2f4ecd6
child 7936 3df083e704f2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/random_func.hpp	Wed Nov 21 19:13:38 2007 +0000
@@ -0,0 +1,234 @@
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */
+/* $Id$ */
+
+/** @file random_func.h */
+
+#ifndef RANDOM_FUNC_HPP
+#define RANDOM_FUNC_HPP
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ *  stdout if the first client joins (or if you are a client). This
+ *  is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+// #define MERSENNE_TWISTER
+
+void SetRandomSeed(uint32 seed);
+#ifdef RANDOM_DEBUG
+	#define Random() DoRandom(__LINE__, __FILE__)
+	uint32 DoRandom(int line, const char *file);
+	#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+	uint DoRandomRange(uint max, int line, const char *file);
+#else
+	uint32 Random();
+	uint RandomRange(uint max);
+#endif
+
+uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link
+uint InteractiveRandomRange(uint max);
+
+#endif /* RANDOM_FUNC_HPP */