added separate 3-state type values for "true" and "false" states
[rocksndiamonds.git] / src / libgame / types.h
index 6f86c02888b007b884136da1bbdaad4c6b3b3cac..19a0f8705f77132d3cc5234d3217ef5e3a17a30e 100644 (file)
@@ -32,13 +32,23 @@ typedef unsigned char byte;
 #undef FALSE
 #endif
 
-#ifdef AUTO
-#undef AUTO
+#ifdef MODE_AUTO
+#undef MODE_AUTO
 #endif
 
+#ifdef MODE_ASK
+#undef MODE_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 MODE_TRUE              1
+#define MODE_FALSE             0
+#define MODE_AUTO              -1
+#define MODE_ASK               -1
 
 #ifndef MIN
 #define MIN(a, b)              ((a) < (b) ? (a) : (b))
@@ -72,6 +82,8 @@ typedef unsigned char byte;
 #define INT_TO_PTR(i)          ((void *) (long) (i))
 #define UINT_TO_PTR(u)         ((void *) (unsigned long) (u))
 
+#define STRUCT_OFFSET(s, m)    (offsetof(s, m))
+
 
 struct ListNode
 {