X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Ftypes.h;h=7dc2a7d4a2d1b7f3b666b37d4916ed17e428544f;hb=681df696173f472fe28e49b9e8e01b34dc34629b;hp=15b25ce8da23c4449a74e2506dc34bca1f0203a0;hpb=3210187ea3da26ff5d1a90bd2b731928efec4579;p=rocksndiamonds.git diff --git a/src/libgame/types.h b/src/libgame/types.h index 15b25ce8..7dc2a7d4 100644 --- a/src/libgame/types.h +++ b/src/libgame/types.h @@ -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,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))