moved code to check for file in level directories to separate function
[rocksndiamonds.git] / src / libgame / types.h
index 6f86c02888b007b884136da1bbdaad4c6b3b3cac..7dc2a7d4a2d1b7f3b666b37d4916ed17e428544f 100644 (file)
@@ -32,13 +32,23 @@ typedef unsigned char byte;
 #undef FALSE
 #endif
 
-#ifdef AUTO
-#undef AUTO
+#ifdef STATE_AUTO
+#undef STATE_AUTO
 #endif
 
+#ifdef STATE_ASK
+#undef STATE_ASK
+#endif
+
+// values for boolean data type
 #define TRUE                   1
 #define FALSE                  0
-#define AUTO                   -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))
@@ -66,12 +76,26 @@ 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))
+
 
 struct ListNode
 {