1 // ============================================================================
2 // Artsoft Retro-Game Library
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2014 by Artsoft Entertainment
7 // https://www.artsoft.org/
8 // ----------------------------------------------------------------------------
10 // ============================================================================
19 #include <sys/types.h>
22 #if !defined(PLATFORM_WINDOWS)
24 typedef unsigned char byte;
43 // values for boolean data type
47 // values for 3-state data type (for "yes/no/auto" or "yes/no/ask")
54 #define MIN(a, b) ((a) < (b) ? (a) : (b))
58 #define MAX(a, b) ((a) > (b) ? (a) : (b))
62 #define ABS(a) ((a) < 0 ? -(a) : (a))
66 #define SIGN(a) ((a) < 0 ? -1 : ((a) > 0 ? 1 : 0))
70 #define ODD(a) (((a) & 1) == 1)
74 #define EVEN(a) (((a) & 1) == 0)
77 #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
79 #if defined(__x86_64__)
81 #define PTR_TO_INT(p) ((int) (long long) (p))
82 #define PTR_TO_UINT(p) ((unsigned int) (unsigned long long) (p))
84 #define INT_TO_PTR(i) ((void *) (long long) (i))
85 #define UINT_TO_PTR(u) ((void *) (unsigned long long) (u))
89 #define PTR_TO_INT(p) ((int) (long) (p))
90 #define PTR_TO_UINT(p) ((unsigned int) (unsigned long) (p))
92 #define INT_TO_PTR(i) ((void *) (long) (i))
93 #define UINT_TO_PTR(u) ((void *) (unsigned long) (u))
97 #define STRUCT_OFFSET(s, m) (offsetof(s, m))
104 struct ListNode *prev;
105 struct ListNode *next;
107 typedef struct ListNode ListNode;
114 typedef struct DelayCounter DelayCounter;