X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Ftypes.h;h=7dc2a7d4a2d1b7f3b666b37d4916ed17e428544f;hb=ed44c040b637f60a46e9051d1e939e62d3646a0b;hp=bbe46f556a40015ac937502c08f6b43e60374428;hpb=929b071507a0fc9dfd5b667ca563137f65062dd7;p=rocksndiamonds.git diff --git a/src/libgame/types.h b/src/libgame/types.h index bbe46f55..7dc2a7d4 100644 --- a/src/libgame/types.h +++ b/src/libgame/types.h @@ -32,14 +32,23 @@ typedef unsigned char byte; #undef FALSE #endif -#ifdef MODE_AUTO -#undef MODE_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 MODE_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)) @@ -67,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))