diff options
Diffstat (limited to 'include/generic.h')
-rw-r--r-- | include/generic.h | 388 |
1 files changed, 194 insertions, 194 deletions
diff --git a/include/generic.h b/include/generic.h index bdfb51c..fe9b529 100644 --- a/include/generic.h +++ b/include/generic.h @@ -1,194 +1,194 @@ -/*
- * Baltisot
- * Copyright (C) 1999-2003 Nicolas "Pixel" Noble
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* $Id: generic.h,v 1.30 2004-11-27 21:43:48 pixel Exp $ */
-
-#ifndef __GENERIC_H__
-#define __GENERIC_H__
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-
-#define M_BARE -1
-#define M_ERROR 0
-#define M_STATUS 1
-#define M_WARNING 2
-#define M_INFO 3
-
-#ifdef _WIN32
-#include <windows.h>
-#endif
-
-#ifndef bcopy
-#define bcopy(x,y,z) memcpy((y),(x),(z))
-#endif
-
-#if ! defined SDL_VERSIONNUM && ! defined Uint32
-typedef unsigned long int Uint32;
-#endif
-
-#ifndef int32
-typedef signed long int int32;
-#endif
-
-#ifndef Uint16
-typedef unsigned short int Uint16;
-#endif
-
-#ifndef int16
-typedef signed short int int16;
-#endif
-
-#ifndef Uint8
-typedef unsigned char Uint8;
-#endif
-
-#ifndef int8
-typedef signed char int8;
-#endif
-
-#ifndef Byte
-typedef Uint8 Byte;
-#endif
-
-#ifndef Word
-typedef Uint16 Word;
-#endif
-
-#ifndef DWord
-typedef Uint32 DWord;
-#endif
-
-#if !defined __ssize_t_defined && !defined _SSIZE_T && !defined ssize_t && !defined _BSD_SSIZE_T_DEFINED_
-typedef int32 ssize_t;
-#endif
-
-#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined FORCE64 || defined __APPLE__
-typedef long long int64;
-typedef unsigned long long Uint64;
-#else
-#if defined _WIN32
-typedef _int64 int64;
-typedef unsigned _int64 Uint64;
-#else
-#error Unsupported platform (need 64 bits ints definition)
-#endif
-#endif
-
-#ifndef PACKED
-#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__
-#define PACKED __attribute__((packed))
-#else // PACKED
-#define PACKED
-#endif
-#endif // !PACKED
-
-#ifndef PPACKED
-#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__
-#define PPACKED
-#else // PPACKED
-#define PPACKED __declspec(align(1))
-#endif
-#endif // !PPACKED
-
-extern char verbosity;
-char ** split(char * s, char t);
-
-#ifdef _WIN32
-#define tolittle(x) x
-static Uint32 tobig(Uint32 x) {
- return (x >> 24) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | (x << 24);
-}
-#else
-#define tolittle(x) x
-static Uint32 tobig(Uint32 x) {
- return (x >> 24) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | (x << 24);
-}
-#endif
-
-#if defined __cplusplus
-
-#ifndef MAX
-template<class T>
-inline T MAX(T a, T b) {
- return a < b ? b : a;
-}
-#endif
-
-#ifndef MIN
-template<class T>
-inline T MIN(T a, T b) {
- return a > b ? b : a;
-}
-#endif
-
-#ifndef SWAP
-template<class T>
-inline void SWAP(T & a, T & b) {
- T t = a;
- a = b;
- b = t;
-}
-#endif
-
-#ifndef ABS
-template<class T>
-inline T ABS(T x) {
- T ox = -x;
- return x > 0 ? x : ox;
-}
-#endif
-
-#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__
-#define FUNCNAME String(__PRETTY_FUNCTION__)
-#else
-#define FUNCNAME String(__FUNCSIG__)
-#endif
-
-#else // cplusplus
-
-#ifndef MAX
-#define MAX(__a,__b) ((__a)<(__b)?(__b):(__a))
-#endif
-
-#ifndef MIN
-#define MIN(__a,__b) ((__a)>(__b)?(__b):(__a))
-#endif
-
-#endif // !cplusplus
-
-#define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255)
-#define BX_(x) ((x) - (((x)>>1)&0x77777777) \
- - (((x)>>2)&0x33333333) \
- - (((x)>>3)&0x11111111))
-#define ISPOT(x) (((x)&(x-1))==0?1:0)
-
-#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __APPLE__
-#define MKDIR(name) mkdir(name, 0777)
-#else
-#if defined __WIN32__ || defined _WIN32
-#include <direct.h>
-#define MKDIR mkdir
-#else
-#error Unknow compiler/platform
-#endif
-#endif
-
-#endif
+/* + * Baltisot + * Copyright (C) 1999-2003 Nicolas "Pixel" Noble + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* $Id: generic.h,v 1.31 2004-11-27 21:46:03 pixel Exp $ */ + +#ifndef __GENERIC_H__ +#define __GENERIC_H__ + +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> + +#define M_BARE -1 +#define M_ERROR 0 +#define M_STATUS 1 +#define M_WARNING 2 +#define M_INFO 3 + +#ifdef _WIN32 +#include <windows.h> +#endif + +#ifndef bcopy +#define bcopy(x,y,z) memcpy((y),(x),(z)) +#endif + +#if ! defined SDL_VERSIONNUM && ! defined Uint32 +typedef unsigned long int Uint32; +#endif + +#ifndef int32 +typedef signed long int int32; +#endif + +#ifndef Uint16 +typedef unsigned short int Uint16; +#endif + +#ifndef int16 +typedef signed short int int16; +#endif + +#ifndef Uint8 +typedef unsigned char Uint8; +#endif + +#ifndef int8 +typedef signed char int8; +#endif + +#ifndef Byte +typedef Uint8 Byte; +#endif + +#ifndef Word +typedef Uint16 Word; +#endif + +#ifndef DWord +typedef Uint32 DWord; +#endif + +#if !defined __ssize_t_defined && !defined _SSIZE_T && !defined ssize_t && !defined _BSD_SSIZE_T_DEFINED_ +typedef int32 ssize_t; +#endif + +#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined FORCE64 || defined __APPLE__ +typedef long long int64; +typedef unsigned long long Uint64; +#else +#if defined _WIN32 +typedef _int64 int64; +typedef unsigned _int64 Uint64; +#else +#error Unsupported platform (need 64 bits ints definition) +#endif +#endif + +#ifndef PACKED +#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__ +#define PACKED __attribute__((packed)) +#else // PACKED +#define PACKED +#endif +#endif // !PACKED + +#ifndef PPACKED +#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__ +#define PPACKED +#else // PPACKED +#define PPACKED __declspec(align(1)) +#endif +#endif // !PPACKED + +extern char verbosity; +char ** split(char * s, char t); + +#ifdef _WIN32 +#define tolittle(x) x +static Uint32 tobig(Uint32 x) { + return (x >> 24) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | (x << 24); +} +#else +#define tolittle(x) x +static Uint32 tobig(Uint32 x) { + return (x >> 24) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | (x << 24); +} +#endif + +#if defined __cplusplus + +#ifndef MAX +template<class T> +inline T MAX(T a, T b) { + return a < b ? b : a; +} +#endif + +#ifndef MIN +template<class T> +inline T MIN(T a, T b) { + return a > b ? b : a; +} +#endif + +#ifndef SWAP +template<class T> +inline void SWAP(T & a, T & b) { + T t = a; + a = b; + b = t; +} +#endif + +#ifndef ABS +template<class T> +inline T ABS(T x) { + T ox = -x; + return x > 0 ? x : ox; +} +#endif + +#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __MINGW32__ || defined __APPLE__ +#define FUNCNAME String(__PRETTY_FUNCTION__) +#else +#define FUNCNAME String(__FUNCSIG__) +#endif + +#else // cplusplus + +#ifndef MAX +#define MAX(__a,__b) ((__a)<(__b)?(__b):(__a)) +#endif + +#ifndef MIN +#define MIN(__a,__b) ((__a)>(__b)?(__b):(__a)) +#endif + +#endif // !cplusplus + +#define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255) +#define BX_(x) ((x) - (((x)>>1)&0x77777777) \ + - (((x)>>2)&0x33333333) \ + - (((x)>>3)&0x11111111)) +#define ISPOT(x) (((x)&(x-1))==0?1:0) + +#if defined __linux__ || defined sun || defined __solaris__ || defined __CYGWIN32__ || defined __APPLE__ +#define MKDIR(name) mkdir(name, 0777) +#else +#if defined __WIN32__ || defined _WIN32 +#include <direct.h> +#define MKDIR mkdir +#else +#error Unknow compiler/platform +#endif +#endif + +#endif |