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 fbf2007..bdfb51c 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.29 2004-07-16 15:04:52 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.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
|