aboutsummaryrefslogtreecommitdiff
path: root/common/scummsys.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/scummsys.h')
-rw-r--r--common/scummsys.h117
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