added setup option for fast game start from level editor
[rocksndiamonds.git] / src / libgame / types.h
index 2c678f705c125eed4a009bcb24edf331bfed3ba8..7dc2a7d4a2d1b7f3b666b37d4916ed17e428544f 100644 (file)
@@ -32,19 +32,23 @@ typedef unsigned char byte;
 #undef FALSE
 #endif
 
-#ifdef MODE_AUTO
-#undef MODE_AUTO
+#ifdef STATE_AUTO
+#undef STATE_AUTO
 #endif
 
-#ifdef MODE_ASK
-#undef MODE_ASK
+#ifdef STATE_ASK
+#undef STATE_ASK
 #endif
 
+// values for boolean data type
 #define TRUE                   1
 #define FALSE                  0
 
-#define MODE_AUTO              -1
-#define MODE_ASK               -1
+// values for 3-state data type (for "yes/no/auto" or "yes/no/ask")
+#define STATE_TRUE             1
+#define STATE_FALSE            0
+#define STATE_AUTO             -1
+#define STATE_ASK              -1
 
 #ifndef MIN
 #define MIN(a, b)              ((a) < (b) ? (a) : (b))
@@ -72,12 +76,24 @@ typedef unsigned char byte;
 
 #define ARRAY_SIZE(array)      (sizeof(array) / sizeof(array[0]))
 
+#if defined(__x86_64__)
+
+#define PTR_TO_INT(p)          ((int) (long long) (p))
+#define PTR_TO_UINT(p)         ((unsigned int) (unsigned long long) (p))
+
+#define INT_TO_PTR(i)          ((void *) (long long) (i))
+#define UINT_TO_PTR(u)         ((void *) (unsigned long long) (u))
+
+#else
+
 #define PTR_TO_INT(p)          ((int) (long) (p))
 #define PTR_TO_UINT(p)         ((unsigned int) (unsigned long) (p))
 
 #define INT_TO_PTR(i)          ((void *) (long) (i))
 #define UINT_TO_PTR(u)         ((void *) (unsigned long) (u))
 
+#endif
+
 #define STRUCT_OFFSET(s, m)    (offsetof(s, m))