X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Ftypes.h;h=bbe46f556a40015ac937502c08f6b43e60374428;hb=929b071507a0fc9dfd5b667ca563137f65062dd7;hp=e4aad2a3a5f6233600cc438f8bfac0896fd1b091;hpb=da14f69fd95c7bd5a0d70cdf4935af06f1f20a04;p=rocksndiamonds.git diff --git a/src/libgame/types.h b/src/libgame/types.h index e4aad2a3..bbe46f55 100644 --- a/src/libgame/types.h +++ b/src/libgame/types.h @@ -1,25 +1,95 @@ -/*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * -*----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * -*----------------------------------------------------------* -* types.h * -***********************************************************/ +// ============================================================================ +// Artsoft Retro-Game Library +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// https://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// types.h +// ============================================================================ #ifndef TYPES_H #define TYPES_H -typedef unsigned char boolean; +#include +#include +#include +#include +#include + + +#if !defined(PLATFORM_WINDOWS) +typedef int boolean; typedef unsigned char byte; +#endif + +#ifdef TRUE +#undef TRUE +#endif + +#ifdef FALSE +#undef FALSE +#endif + +#ifdef MODE_AUTO +#undef MODE_AUTO +#endif + +#define TRUE 1 +#define FALSE 0 + +#define MODE_AUTO -1 + +#ifndef MIN +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef MAX +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif + +#ifndef ABS +#define ABS(a) ((a) < 0 ? -(a) : (a)) +#endif + +#ifndef SIGN +#define SIGN(a) ((a) < 0 ? -1 : ((a) > 0 ? 1 : 0)) +#endif + +#ifndef ODD +#define ODD(a) (((a) & 1) == 1) +#endif -#ifndef FALSE -#define FALSE 0 -#define TRUE (!FALSE) +#ifndef EVEN +#define EVEN(a) (((a) & 1) == 0) #endif -#endif /* TYPES_H */ +#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) + +#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)) + +#define STRUCT_OFFSET(s, m) (offsetof(s, m)) + + +struct ListNode +{ + char *key; + void *content; + struct ListNode *prev; + struct ListNode *next; +}; +typedef struct ListNode ListNode; + +struct DelayCounter +{ + unsigned int value; + unsigned int count; +}; +typedef struct DelayCounter DelayCounter; + +#endif // TYPES_H