diff options
Diffstat (limited to 'common/scummsys.h')
-rw-r--r-- | common/scummsys.h | 117 |
1 files changed, 104 insertions, 13 deletions
diff --git a/common/scummsys.h b/common/scummsys.h index 25c5c166e3..46ead5f29a 100644 --- a/common/scummsys.h +++ b/common/scummsys.h @@ -26,10 +26,101 @@ #ifndef COMMON_SCUMMSYS_H #define COMMON_SCUMMSYS_H -#if !defined(COMMON_STDAFX_H) && !defined(__PLAYSTATION2__) -#error Included scummsys.h without including stdafx.h first! +#if defined(_WIN32_WCE) && _WIN32_WCE < 300 + #define NONSTANDARD_PORT #endif +#if defined(NONSTANDARD_PORT) + + // Ports which need to perform #includes and #defines visible in + // virtually all the source of ScummVM should do so by providing a + // "portdefs.h" header file (and not by directly modifying this + // header file). + #include <portdefs.h> + +#else // defined(NONSTANDARD_PORT) + + #if defined(WIN32) + + #ifdef _MSC_VER + #pragma once + #pragma warning( disable : 4068 ) // turn off "unknown pragma" warning + #pragma warning( disable : 4100 ) // turn off "unreferenced formal parameter" warning + #pragma warning( disable : 4127 ) // turn off "conditional expression is constant" warning + #pragma warning( disable : 4201 ) // turn off "nonstandard extension used : nameless struct/union" warning + #pragma warning( disable : 4244 ) // turn off "conversion type" warning + #pragma warning( disable : 4310 ) // turn off "cast truncates constant value" warning + #pragma warning( disable : 4355 ) // turn off "base member init" warning + #pragma warning( disable : 4390 ) // turn off "empty statement" warning for BS2 code + #pragma warning( disable : 4250 ) // turn off "inherits via dominance" warning + #pragma warning( disable : 4103 ) // turn off "alignement changed after including header" warning. We use pack-start.h file + #pragma warning( disable : 4121 ) // turn off "alignment of a member was sensitive to packing" warning + #pragma warning( disable : 4511 ) // turn off "copy constructor could not be generated" warning + #pragma warning( disable : 4512 ) // turn off "assignment operator could not be generated" warning + #pragma warning( disable : 4351 ) // turn off "new behavior ... will be default initialized" warning + #pragma warning( disable : 4505 ) // turn off "unreferenced local function has been removed" + #pragma warning( disable : 4510 ) // turn off "default constructor could not be generated" + #pragma warning( disable : 4610 ) // turn off "struct can never be instantiated - user defined constructor required" + + // FIXME: 4702 & 4706 - may be enabled + #pragma warning( disable : 4702 ) // turn off "unreachable code" warning + #pragma warning( disable : 4706 ) // turn off "assignment within conditional expression" warning + + #define vsnprintf _vsnprintf + #endif + + #if !defined(_WIN32_WCE) + + #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + #define NOGDICAPMASKS + #define OEMRESOURCE + #define NONLS + #define NOICONS + #define NOMCX + #define NOPROFILER + #define NOKANJI + #define NOSERVICE + #define NOMETAFILE + #define NOCOMM + #define NOCRYPT + #define NOIME + #define NOATOM + #define NOCTLMGR + #define NOCLIPBOARD + #define NOMEMMGR + #define NOSYSMETRICS + #define NOMENUS + #define NOOPENFILE + #define NOWH + #define NOSOUND + #define NODRAWTEXT + + #endif + + #if defined(ARRAYSIZE) + // VS2005beta2 introduces new stuff in winnt.h + #undef ARRAYSIZE + #endif + + #endif + + #if defined(__QNXNTO__) + #include <strings.h> /* For strcasecmp */ + #endif + + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <stdarg.h> + #include <assert.h> + #include <ctype.h> + #include <time.h> + #include <math.h> + +#endif + + + // Use config.h, generated by configure #if defined(HAVE_CONFIG_H) #include "config.h" @@ -71,7 +162,7 @@ // // By default we try to use pragma push/pop to ensure various structs we use -// are "packed". If your compiler doesn't support this pragma, you are in for +// are "packed". If your compiler doesn't support this pragma, you are in for // a problem. If you are lucky, there is a compiler switch, or another pragma, // doing the same thing -- in that case, try to modify common/pack-begin.h and // common/pack-end.h accordingly. Or maybe your port simply *always* packs @@ -88,7 +179,7 @@ #define scumm_stricmp strcasecmp #define scumm_strnicmp strncasecmp - #define SCUMM_LITTLE_ENDIAN + #define SCUMM_LITTLE_ENDIAN #define SCUMM_NEED_ALIGNMENT #define SMALL_SCREEN_DEVICE @@ -172,14 +263,14 @@ #ifndef CONFIG_H #ifdef X11_BACKEND - + // You need to set this manually if necessary // #define SCUMM_LITTLE_ENDIAN - + #else /* need this for the SDL_BYTEORDER define */ #include <SDL_byteorder.h> - + #if SDL_BYTEORDER == SDL_LIL_ENDIAN #define SCUMM_LITTLE_ENDIAN #elif SDL_BYTEORDER == SDL_BIG_ENDIAN @@ -208,7 +299,7 @@ #define SCUMM_NEED_ALIGNMENT #define STRINGBUFLEN 256 - + extern const char *SCUMMVM_SAVEPATH; #if !defined(COMPILE_ZODIAC) && !defined(COMPILE_OS5) @@ -238,7 +329,7 @@ #define scumm_stricmp stricmp #define scumm_strnicmp strnicmp - #define SCUMM_LITTLE_ENDIAN + #define SCUMM_LITTLE_ENDIAN #define SCUMM_NEED_ALIGNMENT // Override typenames. uint is already defined by system header files. @@ -259,7 +350,7 @@ #define scumm_stricmp strcasecmp #define scumm_strnicmp strncasecmp - #define SCUMM_LITTLE_ENDIAN + #define SCUMM_LITTLE_ENDIAN #define SCUMM_NEED_ALIGNMENT #elif defined(__PSP__) @@ -284,7 +375,7 @@ #define scumm_strnicmp strnicmp #define SCUMM_NEED_ALIGNMENT - #define SCUMM_LITTLE_ENDIAN + #define SCUMM_LITTLE_ENDIAN #include "nds/jtypes.h" @@ -302,8 +393,8 @@ // GCC specific stuff // #if defined(__GNUC__) - #define NORETURN __attribute__((__noreturn__)) - #define PACKED_STRUCT __attribute__((packed)) + #define NORETURN __attribute__((__noreturn__)) + #define PACKED_STRUCT __attribute__((packed)) #define GCC_PRINTF(x,y) __attribute__((format(printf, x, y))) #else #define PACKED_STRUCT |