X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMacCompatibility.h;h=1ce59d4858fa7c68d13b0dae9d08609dbee6dc7b;hb=cd043e3f9e26c2b3406b40a354c2840941e9db7f;hp=cb5da9195098e05d26707786fddb3602478a3a2e;hpb=2380b6fea047f5a8cafc64d11291798cd30e0515;p=lugaru.git diff --git a/Source/MacCompatibility.h b/Source/MacCompatibility.h index cb5da91..1ce59d4 100644 --- a/Source/MacCompatibility.h +++ b/Source/MacCompatibility.h @@ -1,3 +1,22 @@ +/* +Copyright (C) 2003, 2010 - Wolfire Games + +This file is part of Lugaru. + +Lugaru 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. + +Lugaru 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 Lugaru. If not, see . +*/ + #ifndef _MACCOMPATIBLITY_H_ #define _MACCOMPATIBLITY_H_ @@ -9,6 +28,10 @@ // stuff to make Mac code compatable with Windows/Linux/etc +#if defined(WIN32) && !defined(strcasecmp) +#define strcasecmp(a,b) stricmp(a,b) +#endif + #ifdef _MSC_VER // disable warnings about double to float conversions #pragma warning(disable:4305) @@ -21,18 +44,18 @@ #pragma warning(disable:4101) #endif -#ifdef __GNUC__ -#define __forceinline inline __attribute__((always_inline)) +#ifndef __forceinline +# ifdef __GNUC__ +# define __forceinline inline __attribute__((always_inline)) +# endif #endif - typedef bool Boolean; -struct Point -{ - short v; - short h; +struct Point { + short v; + short h; }; typedef signed char SInt8; @@ -46,66 +69,45 @@ void CopyCStringToPascal( const char* src, unsigned char dst[256]); void CopyPascalStringToC( const unsigned char* src, char* dst); -typedef struct AbsoluteTime -{ - unsigned long hi; - unsigned long lo; -} AbsoluteTime; +typedef struct AbsoluteTime { + unsigned long hi; + unsigned long lo; +} AbsoluteTime; -AbsoluteTime UpTime(); // NOTE: returns time since app started, not system start +AbsoluteTime UpTime(); // NOTE: returns time since app started, not system start -typedef long Duration; +typedef long Duration; -enum -{ - durationMicrosecond = -1, - durationMillisecond = 1, - durationSecond = 1000, - durationMinute = 1000 * 60, - durationHour = 1000 * 60 * 60, - durationDay = 1000 * 60 * 60 * 24, - durationForever = 0x7FFFFFFF, - durationImmediate = 0, -}; +enum { + durationMicrosecond = -1, + durationMillisecond = 1, + durationSecond = 1000, + durationMinute = 1000 * 60, + durationHour = 1000 * 60 * 60, + durationDay = 1000 * 60 * 60 * 24, + durationForever = 0x7FFFFFFF, + durationImmediate = 0, +}; Duration AbsoluteDeltaToDuration( AbsoluteTime& a, AbsoluteTime& b); #ifdef _MSC_VER inline bool isnormal( double x) { - int ret = _fpclass( x); - return (ret == _FPCLASS_NN || ret == _FPCLASS_PN); + int ret = _fpclass( x); + return (ret == _FPCLASS_NN || ret == _FPCLASS_PN); } +#else +#include #endif -typedef unsigned int uintptr_t; - // fix file names to use '/' instead of ':' -char* ConvertFileName( const char* orgfilename); +char* ConvertFileName( const char* orgfilename, const char *mode = "rb" ); -#define fopen( a, b) fopen( ConvertFileName( a), b); -/* -inline float abs( float f) -{ -if (f < 0) -return -f; -return f; -} +#define fopen( a, b) fopen(ConvertFileName(a, b), b) -inline double abs( double f) -{ -if (f < 0) -return -f; -return f; -} -*/ -__forceinline long long longlongabs( long long f) -{ - if (f < 0) - return -f; - return f; -} #endif #endif +